vue.js - 在从本地存储还原 Vuex Store 之前执行的中间件

标签 vue.js local-storage persistence vuex nuxt.js

在 nuxtjs 项目中,我创建了一个 auth 中间件来保护页面。
并使用 vuex-persistedstate(也尝试过 vuex-persist 和 nuxt-vuex-persist)来持久化 vuex 存储。

在页面之间导航时一切正常,但是当我刷新页面或直接登陆 protected 路由时,它会将我重定向到登录页面。

本地存储插件

import createPersistedState from 'vuex-persistedstate'

export default ({ store }) => {
  createPersistedState({
      key: 'store-key'
  })(store)
}

认证中间件
export default function ({ req, store, redirect, route }) {
    const userIsLoggedIn = !!store.state.auth.user
    if (!userIsLoggedIn) {
        return redirect(`/auth/login?redirect=${route.fullPath}`)
    }
    return Promise.resolve()
}

最佳答案

我通过使用这个插件解决了这个问题 vuex-persistedstate而不是 vuex-persist 插件。 vuex-persist 中似乎有一些错误(或者可能是设计架构)导致了它。

关于vue.js - 在从本地存储还原 Vuex Store 之前执行的中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54789823/

相关文章:

playframework - Play Framework : 2. 0.2 PersistenceException:无法在 Ebean 服务器中注册类

typescript - 为 vue 包创建 typescript 定义文件 (vue-datetime)

javascript - Vue.js:如何将键列表映射到 Firebase 对象?

javascript - 如何使用jquery将类存储在本地存储中?

javascript - 部署为网络应用程序的两个谷歌应用程序脚本之间的本地存储访问

java - 线程中的异常 "main"java.lang.ClassFormatError : Absent Code attribute

kubernetes - 在部署更新时重新附加卷声明

javascript - 在 Vue 中删除一个对象,从子对象发射到父对象,再到父对象

javascript - ReCaptcha v2 不会在 vue-router 导航中加载

javascript - iOS 上超出 LocalStorage 配额(dom 错误 22),但未设置私有(private)模式