码迷,mamicode.com
首页 > 其他好文 > 详细

会话管理1-Token

时间:2020-07-05 13:58:07      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:一个   请求   signature   自己的   信息   认证   sign   web api   服务   

会话管理1-Token

token是什么

token是服务器根据客户端特征信息生成的一个特征字符串

token有什么作用

token的作用类似于session中的sessionid,都是为了服务器判断请求是否来自于同一用户,方便无状态的web服务认证鉴权

token方式有什么特点

  • 服务端不需要存储有状态的session,客户端不需要cookie
  • 带有一定的会话信息,减少了服务端对数据库的压力
  • 无状态、扩展性好,支持跨域访问、移动和物联网应用
  • 支持签名(加密)算法,防止csrf攻击

token应用场景

token主要支持基于web api的多类型用户端、跨平台、分布式微服务、物联网应用

token整体流程

  1. 客户端拿自己的用户名密码向服务端发起登录请求或者token获取请求
  2. 服务器验证信息是否正确,然后返回一个经过服务器签名的token
  3. 客户端将服务端返回的token缓存到本地留待后用
  4. 客户端带着返回的token与服务端进行后续的交互
  5. 服务端在接收到客户端请求时根据token有效性进行后续处理

token生成过程(以JWT为例)

  1. 服务端根据客户首次访问的信息生成以后交互需要传递的数据
  2. 服务端将需要传递的数据放入Payload中
  3. 服务端将签名算法alg写入JWT报文头Header中
  4. 服务端用使用alg签名算法和自己的秘钥对Header和Payload生成签名Signature
  5. 将Header、Payload和Signature用点号(.)分隔符连接在一起就是最终生成的JWT

JWT解决的问题

  1. 服务端不仅可以根据token认证还可以交换一些信息

    服务端解码Token后可以从Payload中获取用户相应的信息

  2. Signature和Header中的alg用来防止token篡改

    服务器解码Token后根据Header中约定的alg算法和自己的私有秘钥重新签名后和原有Signature比对是否一致

  3. 如何保证交换token的安全性

    防止采用http明码传输token,要使用https协议传输,设置有效期(不能从根本上防止别截获,只是在尽量减少截获时候的损失)

会话管理1-Token

标签:一个   请求   signature   自己的   信息   认证   sign   web api   服务   

原文地址:https://www.cnblogs.com/elfcafe/p/13242493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!