首页 文章

登录后NuxtJS重定向

提问于
浏览
0

我正在使用nuxtjs和Laravel Passport . 如果用户转到/ someurl,但登录方法推送到'/'如何在会话中存储/ someurl,以便我可以在登录时推送到会话变量?我有一个被调用的会话变量,但它在身份验证中间件中得到了刷新 . 我显然遗漏了一些东西 .

这是我的代码:在auth.js中间件中

导出默认函数({route,store,redirect}){let params =''

if (!route.path.startsWith('/login') && !route.path.startsWith('/assets') && route.path !== '/') {
    store.state.requestUrl = route.path
}

if (!store.state.authenticated) {
    return redirect('/login')
}

并登录

await this.$store.dispatch('login', {
    username: this.loginDetails.username,
    password: this.loginDetails.password
})
    this.$router.push(this.$store.state.requestUrl) // this is always '/'
} catch (e) {
    console.log(e)
    this.failedLogin = true
}

1 回答

  • 0

    您需要使用变体更改状态(store.state.requestUrl)(存储中的 dispatch 方法 - 您已经在 this.$store.dispatch('login') 中使用过它) . 所以你需要写一个改变商店状态的突变,例如 . this.$store.dispatch('set_request_url', requestUrl) .

    BTW:在Nuxt中有一个用于认证的模块:) https://auth.nuxtjs.org/我建议使用它!但如果我想通过自己实现它,我会在cookie中存储重定向URL(因为它比vuex更耐用) . Nuxt有一个用于存储cookie的模块:https://www.npmjs.com/package/cookie-universal-nuxt,但您也可以使用vuejs cookies模块:https://github.com/alfhen/vue-cookie

相关问题