javascript - Vuex 持久化认证状态
问题描述
我正在使用 Vuex 和 Laravel sanctum 对用户进行身份验证。以下是我的 Vuexauth.js
import axios from 'axios'
export default {
namespaced: true,
state:{
authenticated: false,
user: null
},
getters:{
authenticated (state) {
return state.authenticated
},
user (state) {
return state.user
}
},
mutations:{
SET_AUTHENTICATED(state, value){
state.authenticated = value
},
SET_USER(state, data){
state.user = data
}
},
actions:{
async login ({commit}, credentials){
await axios.get('/sanctum/csrf-cookie')
await axios.post('/api/login', credentials).then(response => {
commit('SET_AUTHENTICATED', true)
commit('SET_USER', response.data)
}).catch(() => {
commit('SET_AUTHENTICATED', false)
commit('SET_USER', null)
})
},
}
}
身份验证正在工作,但每次我刷新页面时,身份验证状态都默认为 false。我如何确保如果用户通过身份验证,身份验证状态保持为真?
解决方案
推荐阅读
- ffmpeg - 通过 FFMPEG 管道使文件持续时间松散
- hive - 根据 Hive 中的大小进行过滤
- php - 使用 codeigniter 和 ajax 发送电子邮件,电子邮件已发送但出现错误消息
- objective-c - UICollectionViewFlowlayout 行为奇怪
- c++ - What's causing my prime numbers to all vanish? [C++]
- java - 提交 Spring 表单时无法点击控制器
- c# - WPF Webview's IsPrivateNetworkClientServerCapabilityEnabled ignored when using ItemTemplate
- netbeans - JMS ActiveMQ and Netbeans
- c# - 签名证书的指纹
- c# - Unity3d - 在 ios 构建上加载视频播放器的外部 url 时出错