vuex中处理token
- state中定义一个token
- actions请求获得token值,但是actions不能直接修改state中token的值,通过模块化调用,使用mutation中的函数来改变token的值
- mutation定义改变token和删除token的两个函数
持久化存储token的值
可以在本地存储一份
- 在对token初始化的时候,可以从本地获取一下,优先使用本地的token
- setToken的时候,在本地也存一下
- removeToken的时候,本地也删除token
import { getToken, setToken, removeToken } from '@/utils/auth'
export default {
namespaced: true,
state: {
token: getToken() || null
},
mutations: {
// 设置token
setToken(state, token) {
state.token = token
setToken(token)
},
// 删除缓存
removeToken(state) {
state.token = null
removeToken()
}
}
}
另一个js中写入本地存储token值
import Cookies from 'js-cookie'
const TokenKey = 'hrsaas-ihrm-token' // 设定一个独一无二的key
export function getToken() {
return Cookies.get(TokenKey)
}
export function setToken(token) {
return Cookies.set(TokenKey, token)
}
export function removeToken() {
return Cookies.remove(TokenKey)
}