首页 > 解决方案 > 在请求之前检查令牌是否仍然有效

问题描述

我正在使用 index.js 文件在 vue 应用程序中进行 api 调用。有没有办法在每次调用之前添加一个 catch 或 a 来查看我的令牌是否仍然很好,如果不是,让用户重定向到登录?

import axios from 'axios'

const client = axios.create({
   baseURL : 'http://myapi.com/api/',
    json: true
})

export default {
    async execute(method, resource, data) {
        const token = localStorage.getItem('token')
        return client({
          method,
          url: resource,
          data,
           crossdomain: true ,
          headers: { "Authorization": `Bearer ${token}` }
        }).then(req => {
          return req.data
        })
      },

      getResponses() {
        return this.execute('get', 'GetResponses')
      },

      getAll(){
        return this.execute('get', 'GetAll')
      },

标签: vue.jsaxios

解决方案


您可以使用拦截器,您可以在其中传递要在每个请求之前调用的函数:

const client = axios.create({ baseURL: 'http://myapi.com/api/', json: true });

client.interceptors.request.use((config) => {
  const token = localStorage.getItem('token');

  if (isTokenGood(token)) {
    return config;
  } else {
    logout();
  }
});

推荐阅读