随着技术的发展,分布式Web应用的普及,通过session管理用户登录状态成本越来越高,因此慢慢发展成为token的方式做登录身份校验,然后通过token去取Redis中的缓存的用户信息,随着之后JWT的出现,校验方式更加简单便捷化,无需通过Redis缓存,而是直接根据token取出保存的用户信息,以及对token可用性校验,单点登录更为简单。
JWT中一般包含两个token:access token和refresh token。当用户通过登录等方式验证身份成功后,服务器会生成一个access token和一个refresh token,并返回到前端进行储存。两个token都会在服务器设置过期时间,但access token的过期时间较短,而refresh token则较长。当前端向服务器发送请求时,access token随着请求一起发送到服务器,用于验证请求者的身份。当服务器发现access token已经过期后,就会返回失败信息。此时前端需要使用refresh token向服务器申请新的access token。如果refresh token没有问题,服务器就会生成新的access token返回。而如果refresh token也过期了,就需要再次向用户要求登录验证身份了。
总而言之,JWT延长时间是通过利用过期时间较长的refresh token重新申请新的access token实现的,而当refresh token也过期时,延长时间就不可能了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。