使用vuex刷新页面后如何保持登录状态?

时间:2018-08-17 10:03:19

标签: javascript vue.js vuex

为了登录,我将调用第三方API,该API将向我提供访问令牌。

这是我的包含vuex的store.js代码

/* eslint-disable */
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
    strict: true,
    state: {
        token: null,
        isUserLoggedIn: false,
        userEmailAddress: null
    },
    mutations: {
        setToken (state, token) {
            state.token = token
            if (token) {
                state.isUserLoggedIn = true
            } else {
                state.isUserLoggedIn = false
                this.$router.push('login')
            }
        },
        setEmailAddress (state, emailAddress) {
            state.userEmailAddress = emailAddress
        }
    },
    actions: {
        setToken ({commit}, token) {
            commit('setToken', token)
        },
        setEmailAddress ({commit}, emailAddress) {
            commit('setEmailAddress', emailAddress)
        }
    }
})

由于我没有使用护照,即使刷新页面后如何使用户保持登录状态?

1 个答案:

答案 0 :(得分:1)

您可以将令牌存储在localStorage中,即localStorage.setItem("token", token)。应用加载后,您可以使用localStorage.getItem("token")检查令牌是否存在,并可能还要检查其有效性。

编辑: 实际上有一个很好的教程,介绍了如何使用我提到的技术来详细实现这一目标:https://medium.com/front-end-hacking/persisting-user-authentication-with-vuex-in-vue-b1514d5d3278