Vuex:令牌不存储在本地存储中

时间:2021-01-06 16:29:11

标签: vue.js local-storage state vuex

我使用 vuex 在 Vue App 中有这家商店:

import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    email: null,
    token: localStorage.getItem('token') || null,
    role: null
  },
  mutations: {
    saveToken (state, token) {
      state.token = token
    }
  },
  actions: {
    createToken (context, user) {
      axios.post('http://127.0.0.1:8001/api/user/login', {
        email: user.email,
        password: user.password
      }).then(response => {
        const token = response.data.token
        localStorage.setItem('token', token)
        context.commit('saveToken', token)
      })
    }
  },
  modules: {
  }
})

登录时令牌状态正确更改,但刷新页面时状态再次为空。

1 个答案:

答案 0 :(得分:0)

首先需要设置axios headers授权

  axios.defaults.headers.common['Authorization'] = 'Bearer ' + token;

以上是如果您使用的是不记名身份验证。

其次,请确保后端是否发送登录刷新令牌,因为您还需要将其保存在本地存储中。