vue 无感刷新token
时间: 2023-11-05 09:58:33 浏览: 92
好的,关于vue无感刷新token的问题,我可以给您提供一些参考。在vue中,可以通过使用axios拦截器来实现无感刷新token的功能。具体可以参考以下代码示例:
```javascript
import axios from 'axios'
// 创建axios实例
const service = axios.create({
baseURL: 'http://api.xxx.com', // api的base_url
timeout: 5000 // 请求超时时间
})
// request拦截器
service.interceptors.request.use(
config => {
// 在请求发送之前做一些处理
// 比如判断本地是否有token,如果有就在请求头中携带token
const token = localStorage.getItem('token')
if (token) {
config.headers['Authorization'] = token
}
return config
},
error => {
// 处理请求错误
console.log(error)
Promise.reject(error)
}
)
// response拦截器
service.interceptors.response.use(
response => {
// 在响应之后做一些处理
// 对于需要刷新token的请求,可以在响应头中设置新的token
const newToken = response.headers['new-token']
if (newToken) {
localStorage.setItem('token', newToken)
}
return response
},
error => {
// 处理响应错误
console.log(error)
return Promise.reject(error)
}
)
export default service
```
以上的代码中,我们可以看到在request拦截器中,我们可以在请求头中携带token。而在response拦截器中,我们可以根据响应头中的new-token来更新本地的token。这样就可以实现无感刷新token的功能了。希望能对您有所帮助。
阅读全文