千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 什么是JWT?使用JWT的流程?对比传统的会话有啥区别?

什么是JWT?使用JWT的流程?对比传统的会话有啥区别?

来源:千锋教育
发布人:wjy
时间: 2022-09-23 16:13:53 1663920833

  JSON Web Token,一般用它来替换掉Session实现数据共享。

  使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:

  1、客户端通过用户名和密码登录服务器;

  2、服务端对客户端身份进行验证;

  3、服务端对该用户生成Token,返回给客户端;

  4、客户端将Token保存到本地浏览器,一般保存到cookie中;

  5、客户端发起请求,需要携带该Token;

  6、服务端收到请求后,首先验证Token,之后返回数据。

什么是JWT1

  如上图为Token实现方式,浏览器次访问服务器,根据传过来的唯一标识userId,服务端会通过一些算法,如常用的HMAC-SHA256算法,然后加一个密钥,生成一个token,然后通过BASE64编码一下之后将这个token发送给客户端;客户端将token保存起来,下次请求时,带着token,服务器收到请求后,然后会用相同的算法和密钥去验证token,如果通过,执行业务操作,不通过,返回不通过信息。

  可以对比下图session实现方式,流程大致一致。

什么是JWT2

  优点:

  无状态、可扩展 :在客户端存储的Token是无状态的,并且能够被扩展。基于这种无状态和不存储Session信息,负载均衡器能够将用户信息从一个服务传到其他服务器上。

  安全:请求中发送token而不再是发送cookie能够防止CSRF(跨站请求伪造)。

  可提供接口给第三方服务:使用token时,可以提供可选的权限给第三方应用程序。

  多平台跨域

  对应用程序和服务进行扩展的时候,需要介入各种各种的设备和应用程序。 假如我们的后端api服务器a.com只提供数据,而静态资源则存放在cdn 服务器b.com上。当我们从a.com请求b.com下面的资源时,由于触发浏览器的同源策略限制而被阻止。

  我们通过CORS(跨域资源共享)标准和token来解决资源共享和安全问题。

  举个例子,我们可以设置b.com的响应首部字段为:

什么是JWT3

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT