会话管理1-Token

Posted elfcafe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了会话管理1-Token相关的知识,希望对你有一定的参考价值。

会话管理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的主要内容,如果未能解决你的问题,请参考以下文章

安卓会话管理

Java Web之会话管理一: 使用Cookie进行会话管理

10会话管理/编程实战分析/Jsp

会话及会话管理技术

会话管理之Cookie技术

Angular会话超时和管理[重复]