LIAIHONG
在Web开发领域,我们经常会听到Json Web Token和OAuth这类技术选型方案。这两者都是用来替代传统Cookie+Session这种会话认证机制的,但很多人会将这两者混淆。
什么是Json Web Token?
Json Web Token简称为JWT(Json Web令牌),它是当前最流行的跨域身份验证解决方案,用Json对象在各个系统间安全的传输信息。通俗的说,JWT是基于Json数据组构的认证规范。
它的应用场景主要有:
实现Web应用的单点登录;
各个应用中传递非敏感信息等。
JWT的优点
JWT这种轻量级认证机制较传统的Cookie+Session机制有哪些优点呢?主要有:
1、无状态特性
Token只是用于校验的,它本身就包含了所登录用户的信息,并不需要在服务端存储Session信息,只需要在客户端存储即可(减轻了服务端的压力)。
2、可跨域访问
我们知道Cookie是有同域限制的,而Token则不存在跨域的问题。
3、它是轻量级的
JWT与OAuth的区别是什么?
上面介绍的JWT干的事情听上去和OAuth似乎差不多,很多人就分不清这两者的区别。简单来说它们之间的关系与区别是这样的:
1、JWT是一种认证规范、OAuth是一种认证框架;
2、OAuth规定了一整套的授权流程,Token是信息传递载体,具体的实现方式是由JWT规定的。