l***@163.com
l***@163.com
  • 发布:2019-10-19 11:05
  • 更新:2019-10-19 23:13
  • 阅读:767

#插件讨论# 【 j-request - 小李寻欢 】刷新TOKEN

分类:uni-app

作者你好,请问下这个工具类怎样刷新TOKEN?这块不会使用,麻烦讲解下,谢谢。

2019-10-19 11:05 负责人:无 分享
已邀请:
小李寻欢

小李寻欢

讲真,这并不是一个好回答的问题,为什么呢?主要是因为客户端刷新token的方式并不是完全一样。这里,我只能给出一个示例。

假设客户端的认证机制是OAuth2方式,那么在登录成功的前提下,后台的认证服务器会返回2个token,一个叫access_token,有效期比较短,一个叫refresh_token,有效期比较长。如果access_token无效,那么可以向后台的认证服务器发送一个更新token的请求,通过传入refresh_token及其它的一些参数,来重新获取access_token,access_token更新后,我们再调一次请求。

大致的代码如下

// 全局的业务拦截  
request.interceptor.response = ((res, config) => {  
    if (res.code === 0) {  
        res.success = true;  
    } else if (res.code === 1001) {  
        // token失效,需要重新登录  
        request.post({url: 'refresh token url', data:{refresh_token, 'refresh_token',param1: 'param1 value'}}).then(res=>{  
            // 重新发送request对象,我不确定这样嵌套发送是否正确。也不确定config中对象是否附带了再次发送的完整信息。一切需要以实际的运行结果为准  
            request.request(config.method, config); // 重新发送原始的请求  
        })  
    }  
    return res;  
})

该问题目前已经被锁定, 无法添加新回复