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

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

阅读 6.8k
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)   // 返回接口返回的错误信息
    })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题