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

#插件讨论# 【 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;  
})

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

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容