会话管理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整体流程
- 客户端拿自己的用户名密码向服务端发起登录请求或者token获取请求
- 服务器验证信息是否正确,然后返回一个经过服务器签名的token
- 客户端将服务端返回的token缓存到本地留待后用
- 客户端带着返回的token与服务端进行后续的交互
- 服务端在接收到客户端请求时根据token有效性进行后续处理
token生成过程(以JWT为例)
- 服务端根据客户首次访问的信息生成以后交互需要传递的数据
- 服务端将需要传递的数据放入Payload中
- 服务端将签名算法alg写入JWT报文头Header中
- 服务端用使用alg签名算法和自己的秘钥对Header和Payload生成签名Signature
- 将Header、Payload和Signature用点号(.)分隔符连接在一起就是最终生成的JWT
JWT解决的问题
-
服务端不仅可以根据token认证还可以交换一些信息
服务端解码Token后可以从Payload中获取用户相应的信息
-
Signature和Header中的alg用来防止token篡改
服务器解码Token后根据Header中约定的alg算法和自己的私有秘钥重新签名后和原有Signature比对是否一致
-
如何保证交换token的安全性
防止采用http明码传输token,要使用https协议传输,设置有效期(不能从根本上防止别截获,只是在尽量减少截获时候的损失)
以上是关于会话管理1-Token的主要内容,如果未能解决你的问题,请参考以下文章