看到好多前后端分离项目用jwt做登录,但是jwt无法续期与注销,这就不得在服务端去储存吗、,这样的话也可以不用jwt,直接将业务信息用json字符串,生成对应的一个唯一id,然后用id做token也可以的啊
采用过你所说的类似方案,这是可行的。是否使用jwt得看公司的架构怎么想的
1)用户登录认证之后,将用户信息保存在本地浏览器中cookie(还可以设置过期时间),
2)后面每次发起http请求,都自动携带上该信息,就能达到认证用户,保持用户在线。
1)用户登录成功之后,在服务端就会生成一个键值对。key叫做sessionid,value就保存ssession(用户信息),客户端那边就需要把sessionid存储到cookie。
2)后续的http请求会携带上sessionid,服务器就根据sessionid来查找对应的信息。
1)用户登录成功之后,token 由服务器本身根据算法生成后下发给客户端,服务器端无需额外存储。
2)客户端请求服务器时,在请求头中追加携带该token
3)服务器端对token进行验签,从而决定本次访问是拒绝还是放行。
4)jwt
可能session不稳定,cookie不安全
jwt你可以在每次请求的时候拦截,重新生成一个新的进行续期。jwt可以实现单点登录