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

l***@163.com
- 发布:2019-10-19 11:05
- 更新:2019-10-19 23:13
- 阅读:893
1 个回复
小李寻欢
讲真,这并不是一个好回答的问题,为什么呢?主要是因为客户端刷新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; })