SunlightDB 安全策略(一)

SunlightDB 安全策略之一——基于Token的身份验证机制,已经在很多超大型网站中应用,比如Facebook,Twitter,Google,Github 等等,比起传统的身份验证方法,Token验证扩展性更强,更安全,非常适合用在Web应用或者移动应用上。
传统身份验证方法
Cookie验证是一种比较传统的HTTP安全策略。Cookie验证机制就是为一次请求认证在服务端创建一个Session对象,同时在客户端的浏览器端创建了一个Cookie对象;通过客户端带上来Cookie对象来与服务器端的Session对象匹配来实现状态管理的。默认的,当我们关闭浏览器的时候,cookie会被删除。但可以通过修改cookie 的过期时间使Cookie在一定时间内有效。
基于 Token 的身份验证方法
使用基于Token的身份验证方法,在服务端不需要存储用户的登录记录。基本流程如下:
(1)客户端使用用户名密码请求登录;
(2)服务端收到请求,验证用户名与密码。验证成功服务端签发一个Token,再把这个Token发送给客户端;
(3)客户端每次向服务端发起请求,都需要带着服务端最新签发的Token;

(4)服务端收到请求,验证请求里面的Token,如果验证成功返回请求的数据。流程图如下:


Token身份验证的优势
(1)支持跨域访问:Cookie是不允许垮域访问的,这一点对Token机制是不存在的,前提是传输的用户认证信息通过HTTP头传输;
(2)更适用CDN:可以通过内容分发网络请求你服务端的所有资料,而你的服务端只要提供API即可;
(3)去耦:不需要绑定到一个特定的身份验证方案。Token可以在任何地方生成,只要在你的API被调用的时候,你可以进行Token生成调用即可;
(4)更适用于移动应用:如果客户端是一个原生平台(比如 iOS,Android,Windows 8 等),是不支持Cookie的,需要额外通过Cookie容器进行处理,这时采用Token验证机制就会简单得多。



发布了153 篇原创文章 · 获赞 104 · 访问量 129万+

猜你喜欢

转载自blog.csdn.net/Dreamcode/article/details/70972244