随着技术的发展和分布式web应用的普及,通过会话管理用户登录状态的成本越来越高。因此,它逐渐发展成为一种令牌方式来进行登录身份验证,然后利用令牌获取缓存在redis中的用户信息。随着jwt的出现,验证方法更加简单方便。它不使用redis缓存,而是直接基于令牌取出保存的用户信息,验证令牌的可用性,使单点登录更容易。
jwt通常包含两个令牌:访问令牌和刷新令牌。当用户通过登录等方式成功验证身份时,服务器会生成一个访问令牌和一个刷新令牌,并返回前端存储。两个令牌的过期时间都将在服务器上设置,但访问令牌的过期时间较短,而刷新令牌的过期时间较长。当当前端向服务器发送请求时,访问令牌将与请求一起发送到服务器,以验证请求者的身份。当服务器发现访问令牌已过期时,它将返回失败信息。此时,前端需要使用refreshtoken从服务器申请新的访问令牌。如果刷新令牌没有问题,服务器将生成一个新的访问令牌。如果刷新令牌已过期,则需要要求用户再次登录以验证其身份。
总之,jwt扩展是通过使用过期时间较长的刷新令牌重新申请新的访问令牌来实现的。当刷新令牌也已过期时,不可能延长时间。
单点登录后,您需要将令牌和刷新令牌返回给客户端。
令牌存储在redis中。如果设置了过期时间,它将过期。不需要刷新令牌
令牌过期后,客户端可以根据刷新令牌获取新的令牌。