课程名称:Spring Cloud / Alibaba 微服务架构实战
课程章节:第6章-授权,鉴权中心微服务
课程讲师:张勤一
课程内容:
保持用户状态,俗称会话
1. JWT
1.1基本概念
-
JSON Web Token(JWT)是一种开放标准,它定义了一种紧凑,自包含的方式,用于作为JSON对象在各方之间安全地传输信息。
-
作用:用户授权,信息交换(少量的信息)等。
1.2 JWT的结构
-
JWT由三部分组成:Header, Payload, Signature,样式:xxxxx.yyyyyy.zzzzzzz
-
Header:由两部分组成(Token类型,加密算法名称),并使用Base64编码,即样式的xxxxxx部分。
{ 'alg': "HS256", //签名的算法 'typ': "JWT" //令牌的类型 }
-
Payload:k-v形式的数据,即传递的数据(授权即是Token信息),也需要用Base64编码。
-
Signature:得到签名,需要使用到编码过的Header和Payload,以及一个密钥,并且签名算法是Header中指定的。
HMACSHA256(base64UrlEncode(header) + “.” + base64UrlEncode(payload), secret)
解析过程:客户端接收到JWT信息,存储在Cooking或本地内存中,客户端每次请求都带上包含JWT信息的Cooking,服务器接收后反向解析得到Payload中的用户信息完成会话与鉴权。
-
1.3 微服务功能逻辑架构
- 授权: 是指将用户信息生成JWT的Token,然后返回给客户端。由于JWT中的信息在会话过程中一直存在,因此信息不易过多,重要的信息不易存放在其中。