jwt流程
2017-03-26 11:20:29 0 举报
JWT(JSON Web Token)是一种基于 JSON 的轻量级身份验证和授权方案。它使用 HS256 或 RSA 等算法对数据进行签名,以确保数据的完整性和安全性。JWT 的工作流程如下: 1. 用户向服务器发送登录请求,提供用户名和密码。 2. 服务器验证用户信息,如果验证通过,则生成一个 JWT。 3. 服务器将 JWT 发送给客户端,客户端将其存储在本地(如 Cookie 或 LocalStorage)。 4. 客户端每次向服务器发送请求时,都会在请求头中携带 JWT。 5. 服务器接收到请求后,会验证 JWT 的有效性和完整性。如果验证通过,则处理请求并返回响应。
作者其他创作
大纲/内容
返回refreshtoken的过期错误
重新建一个新的refreshtoken
得到jtoken 和jrefresh_token
客户端得到jtoken过来,请求auth/gettoken 将refreshtoken传过来,获取新的jtoken
接下来根据accountId去mongo里面取数据
判断refreshtoken是否有过期
判断这个请求是否有在cacheredis缓存里面
找到
存在
将refreshtoken解密,得到accountId和过期时间
过期
将这个refreshtoken存到redis里面
不存在
有缓存
还一半以上
token里面有好几个项,找到对应的refreshtoken的项
判断过期时间是否只剩下总过期时间的一半以下
返回新的jtoken
没过期
生成一个新的jtoken
服务端通过解密jtoken,取出这个jtoken的过期时间,如果小于当前时间,那么这个jtoken就过期了,返回jtoken过期提示
使用cacheredis缓存这个请求
生成新的jtoken
返回no find 错误
过了一段时间再去请求,超过jtoken的过期时间
是
mongo里面没有这个用户存的refreshtoken数据
去redis里面去查有没有缓存
直接返回这个请求的缓存
找不到对应的缓存
登录
0 条评论
回复 删除
下一页