为什么在我的页面能取到登录时的token 但是在调用接口时显示token失效//调用获取用户信息接口 getUserInfo() { const baseUrl = 'http://192.168....' uni.request({ url: baseUrl + '/api/v1/...', data: { //请求参数 id: this.id }, header: { Authorization: this.token //自定义请求头信息 }, //请求方法 默认为GET method: "GET", success: (res) => { console.log(res); this.user = res.data.data.user }, fail: function(err) { console.log(err) } }); },onLoad(option) { this.setStorage() this.getStorage() this.token = uni.getStorageSync('token') console.log('我的页面的token'); console.log(this.token); this.getUserInfo() }
时间: 2024-04-18 07:33:28 浏览: 233
在您的代码中,调用接口时显示token失效的原因可能是您在获取token后没有及时更新`this.token`的值,导致在调用`getUserInfo()`时传递的是过期的token。
要解决这个问题,您可以尝试在每次调用接口之前,确保`this.token`的值是最新的,可以通过以下步骤进行修改:
1. 在`getLogin()`方法中,在获取到新的token值后,调用`setStorage()`方法存储新的token,并更新`this.token`的值。
```javascript
success: (res) => {
console.log(res);
this.id = res.data.data.userInfo.id;
this.token = res.data.data.token; // 获取新的token值
console.log(this.token);
this.setStorage(); // 将新的token存储到本地缓存中
uni.reLaunch({
url: '../mine/mine?id=' + this.id
});
},
```
2. 在`onLoad()`方法中,通过`uni.getStorageSync('token')`来获取最新的token值,并更新`this.token`。
```javascript
onLoad(option) {
this.setStorage();
this.getStorage();
this.token = uni.getStorageSync('token'); // 获取最新的token值
console.log('我的页面的token');
console.log(this.token);
this.getUserInfo();
},
```
通过这样的修改,确保在每次调用接口时传递的都是最新的token值,应该能够解决token失效的问题。请注意在其他需要使用token的地方,也要更新对应的token值。
阅读全文