JWT Token

令牌里有很user信息

JWT 也是一种令牌, json形式的令牌,

java web系统 前端访问后端, A和B系统传输数据

授权并且 签名校验保证数据没有被篡改。

http无状态, 用户请求登录一次后,下次请求不记得之前登录过, 还要重新登录。需要记录状态,这样不用每次请求都重新登录。

方法1:

http携带cookie, 服务器端session 记录user1和user2信息, 客户端有cookie,存储sessionid , 发请求带上,去服务器端查找对应session,认证就完成。

问题:

1.session存储用户信息多(内存中),服务器开销大。

2.分布式应用,相同功能的服务A和B,各自的session不互通, 用户在A登录后, 下次请求路由到B,B上还需要登录一次。

3.cookie被拦截容 受到跨站请求伪造的攻击。、

方法2

JTW token

认证通过会生成JWtoken令牌,通过JWTFilter, 放行login 请求, 对其他的request都要求拿到token 验签没问题后再放行。

进一步enhance可以将重要user信息存在redis中,token作为其key。

jwt 有head  c以及基于head  payload 生成 signature.

head里有令牌类型和加密算法类型, json内容进行base64编码(可以被翻译成原来的样子,不是加密过程)

payload (不要放用户敏感信息) 可以放用户名,用户对象, issue时间

signature 编码后的header和payload以及我们提供的secret(随机盐只在服务端)通过加密算法加密。

jwt 从客户端传递给服务端, 要先进行验签。

是 三个点分割的base64 url字符串, 简洁自包含,避免多次查数据库.

 

posted @ 2025-06-01 17:11  我爱麻辣香锅  阅读(41)  评论(0)    收藏  举报