nuxt中的axios怎么统一配置请求头,token认证

数据请求需要使用到token(用户登录认证), 但是在nuxt没有办法获取到存在store里面 =》 localstorage 存储的token,请问大神们,有什么可以替换或者实现的,thanks

阅读 6.9k
1 个回答

import axios from 'axios'
import store from '@/store'
import { loginOut } from '@/store/login/action.js'

const mockPort = require('../mockPort')

// http request 拦截器
axios.interceptors.request.use(
    config => {
        const token = store.getState().login.token
        config.headers['authorization'] = token
        return config
    },
    err => {
        return Promise.reject(err)
    })

// http response 拦截器
axios.interceptors.response.use(
    response => {
        return response
    },
    error => {
        if (error.response) {
            console.log('axios:' + error.response.status)
            switch (error.response.status) {
                case 401:
                    // 返回 401 清除token信息并跳转到登录页面
                    store.dispatch(loginOut())
                    window.location.href = '/login'
            }
        }
        return Promise.reject(error.response.data)   // 返回接口返回的错误信息
    })
推荐问题