0

如标题所示

我再详细描述一下我遇到的问题,如果我再发送请求的试试,后台验证header中的token,如果这时候,发现token过期,然后一系列判断其为合法token,允许token刷新,后台主动刷新token,并且成功获得新的token,那么问题来了:

因为请求的接口是有返回信息的,我这时候是返回重新刷新的token给前端吗,还是获得新的token后,直接返回接口请求应该返回的数据

1.如果是直接返回token,那前端是不是每个带上token的请求,都需要判断是否有token刷新返回,如果是返回刷新的token,那不是又要用新返回的token,重新发送一次请求???我觉得应该不会这么做

2.如果是返回接口应该返回的具体数据,那token怎么办?这个时候后台刷新了token,然而前端却还是保存的那个过期了的token,不过后台可以把新的token直接设置到返回的方法体中的header中,如果是这样处理,那前端怎么判断header中的token是刷新了的,难不成还是每个带token的请求前端都要去返回的数据中获取header中的token?感觉又回到了原点.....

求各位大佬帮助下,以上两种方法有没有什么比较好的解决方法,或者抛开我的两种方法,有其他合适的,符合我的需求的解决方法,小弟大学生一枚,给自己挖的坑,想填好

2018-12-07 提问

查看全部 8 个回答

0

token过期,只能重新登录
用户每次请求过来都要修改token的过期时间
token自用户登录后就不能再变更了

推荐答案

1

参考微信做法

返回 token 的时候,同时返回了还有多少秒过期 ($expire 秒数)

前端保存 token 同时,记下啥时候过期 (now + $expire)

前端 调用用前判断 如果 token 过期了就先自己主动 刷新 token
这部分可以做成一个 getToken()方法 ,方法里处理掉过期判断及重新获取 token,对已有的代码逻辑不产生影响

后端的逻辑很简单,token 非法 或 过期 就返回错误

你可能感兴趣的

推广链接