单点登录分布式 JWT 加密算法

青苗 青苗 | 571 | 2022-10-19

JWT(Json web token)是通过HMAC算法或者RSA的公钥密钥签名生成携带用户信息的token,将token存放在客户端中(可以存储在cookie,localstorage和sessionStorage中),客户端每次发送请求,都携带token,服务端通过解密来获取用户信息。

官方网站 https://jwt.io/ 案例 单点登录SSO

87c7430fd9a04509961007a3037d2345.png

优点:

  • token包含用户的基本信息,避免再次查库;

  • token存储在客户端,不占用服务器资源。

缺点:

token经过base64编码,可以被解码,因此不能包含用户敏感信息(用户权限、密码等);服务器无存储,因此不能做登录失效处理,除非更改服务器密钥。

  • 头部:主要是描述签名算法;
  • 负载:主要是描述加密对象的信息,主要描述是加密对象的信息,如用户的id等,也可以加些规范里面的东西,如iss 签发者,exp 过期时间,sub 面向的用户;
  • 签名:主要是把前面两部分进行加密,防⽌别⼈拿到token进行base解密后篡改token。

注意

  • 防止加密 jwt token 被盗用篡改(保护密钥)
  • 负载禁止存放非常敏感的数据内容
  • 尽量采用非对称加密算法
文章标签: Java
推荐指数:

真诚点赞 诚不我欺~

单点登录分布式 JWT 加密算法

点赞 收藏 评论

关于作者

青苗
青苗

青苗幼儿园园长

等级 LV5

粉丝 20

获赞 47

经验 1182