vuex保存token并且刷新后不删除token
时间: 2024-01-17 10:04:27 浏览: 127
要在Vuex中保存token并且在刷新后不删除token,你可以使用浏览器的本地存储(localStorage或sessionStorage)来实现。
首先,你可以将token保存在本地存储中。在Vuex的auth模块中的mutations中添加一个新的mutation,用于将token保存到本地存储中:
```javascript
// auth.js
const mutations = {
setToken(state, token) {
state.token = token
localStorage.setItem('token', token) // 将token保存到localStorage中
},
clearToken(state) {
state.token = null
localStorage.removeItem('token') // 清除localStorage中的token
}
}
```
然后,在Vuex的auth模块的state中添加一个初始值,并在初始化store时从本地存储中获取token:
```javascript
// auth.js
const state = {
token: localStorage.getItem('token') || null
}
```
这样,当页面刷新时,Vuex会从本地存储中获取之前保存的token,并将其设置为初始状态。
最后,你需要在应用程序加载时调用一次setToken mutation,以确保将本地存储中的token保存到Vuex中。你可以在main.js文件中的应用程序实例化之前调用此mutation:
```javascript
// main.js
import Vue from 'vue'
import App from './App.vue'
import store from './store'
store.commit('setToken', localStorage.getItem('token')) // 调用setToken mutation
new Vue({
store,
render: h => h(App)
}).$mount('#app')
```
现在,你的token将在Vuex中保存,并且在刷新后不会被删除。请记住,由于安全原因,token仍然应该使用其他方法进行验证和过期处理。
阅读全文