为了账号安全,请及时绑定邮箱和手机立即绑定

Oauth2.0的refresh token获取新的access_token后如何处理

Oauth2.0的refresh token获取新的access_token后如何处理

PHP
一只名叫tom的猫 2019-01-29 20:08:27
在请求接口的时候在header中携带了access_token 和 refresh_token如果access_token过期了会根据refresh_token获取新的 access_token , 之后更新 refresh_token的过期时间!但是有个疑问哈 ! 在获取了新的access_token 后如何让写入到客户端呢?比如场景用户在登录了一段时间后(access_token 已经过期),去请求了订单列表!但是在请求订单列表的时候 由于 access_token 已经过期! 所以要根据 refresh_token 去获取新的令牌! 我们是阻断订单列表的请求让其去获取新的 access_token 之后返回特定状态码! 客户端根据判断状态码 根据约定好的状态码判断是否写入 access_token ? 这样的话请求订单列表的请求已经没了 咋处理呢?感觉说的好乱 有大神解答下吗? (有打赏)!目前有一个思路在请求的时候,判断token是否过期,如果没有过期,继续请求;如果有过期就检测 refresh_token 是否过期 如果也过期了就让用户重新登录!如果token 过期 但是 refresh_token 没有过期 就在中间件设置新的Token 更新refresh_token 的过期时间 ;请求继续 并且再返回的json中增加token字段!{  "status": 1,  "msg": "获取订单列表成功",  "data":[     //业务数据     ],  "token" :"xxxxxxxxxxxxx"    //新的token在客户端 响应拦截器 中 判断返回对象中如果有 token 字段 就将 旧的token 替换!不知这种是否可行呢?
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

没人这么处理的。业务接口和token接口不放一起
1.验证token无效的,返回错误码?客户端要根据这个错误码进行token的刷新或者重新登录
2.之后再去继续请求正常的业务接口

查看完整回答
反对 回复 2019-01-29
  • 1 回答
  • 0 关注
  • 814 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信