建设银行网站建设情况,焦作seo推广,网站开发团队排行榜,乐山的网站建设公司摘要
jwt token 前后端的交互逻辑#xff0c;此部分只描述了一些交互逻辑#xff0c;不涉及到真实应用的开发。
token的格式
tokenheader‘.’payload‘.’sign
第一次登陆的时候
判断http请求头中是否包含Authorization不包含则提示用户未登录当用户登录后#xff0c;…摘要
jwt token 前后端的交互逻辑此部分只描述了一些交互逻辑不涉及到真实应用的开发。
token的格式
tokenheader‘.’payload‘.’sign
第一次登陆的时候
判断http请求头中是否包含Authorization不包含则提示用户未登录当用户登录后后端生成token返回给前端生成token逻辑如下 生成header header { “alg”: “DES”, “typ”: “JWT” } header_str_64 base64.encode(header_str)生成payload payload { “user_id”:“xx”, “effective_time”:“过期时间” } payload_str_64 base64.encode(header_str)对payload_str_64进行AES加密生成签名 signgenerateSign(payload_str_64)生成token tokenheader_str_64 ‘.’ payload_str_64 ‘.’ sign 后端token校验 获取Authorization 中的token 解密进行签名验证 header_str_64 ,payload_str_64 ,signtoken.split(,)
#根据请求头中的payload_str_64反向生成签名
#生成的签名和token携带的签名进行比对
#相等则信息检验成功不相等则表示信息被篡改
sign_nowgenerateSign(payload_str_64)
if sign_newsign:print(信息校验通过)payload_str base64.decode(payload_str_64)payload json.loads(payload_str) payload[effective_time] str(app_obj.expire_time)if 当前时间 effective_time:data {status_code: 401,message: authorization已过期请找管理员续时长}
else:return 信息被篡改如何进行token自动续时
前面 伪代码 我们的token设计中加入了 effective_time过期时间在进行用户校验的时候如果token过期了则返回给用户 ‘authorization已过期请找管理员续时长’这样做是有缺点的比如我正在操作一个任务刚创建好还未保存token过期了是不是很尴尬因此实现token自动续时长是很有必要的。就是当用户处于活跃状态的时候实现token自动续时长。
前端将登陆后获取到的token缓存到本地每个五分钟检查下token的effective_time时间如果过期了则调用后端接口后端接口会返回新的token前端更新本地缓存替换旧的token