如何解决Nuxt.js身份验证模块不重定向已登录用户
经过授权的用户仍然可以访问/login
页。如果我单击了指向/login
页面的链接,则将我重定向到另一个页面,该页面工作正常。但是,如果我手动将/login
输入URL,即使我已经登录,也仍然会被带到/login
页面。我要实现的目标是,当用户登录时,他们在将任何组件显示在页面上之前(如果它们手动进入/retailer/account
页面,应将其重定向到/login
页面。
我在beforeMount()
中间件的documentation之后尝试使用beforeCreate()
函数,auth: 'guest'
函数,但是它似乎没有任何效果,{{1} }始终在页面完全呈现之前返回loggedIn
。
我的设置:
false
:
nuxt.config.js
export default {
mode: 'universal',target: 'static',auth: {
cookie: {
prefix: 'auth_'
},// Options
redirect: {
login: '/login',logout: '/login',callback: false,home: '/retailer/account'
},strategies: {
local: {
endpoints: {
login: {
url: '/auth/login',method: 'post',propertyName: 'access_token',credentials: true
},logout: {
url: '/auth/logout',method: 'post'
},user: {
url: '/auth/me',propertyName: '',credentials: false
}
},token: {
required: true,type: 'Bearer',global: true
},autoFetchUser: true
}
},preserveState: true,watchLoggedIn: true
},router: {
middleware: [
'auth'
]
}
}
:
layouts/default.vue
export default {
auth: false
}
:
pages/retailer/account.vue
export default {
middleware: 'auth'
}
:
pages/login.vue
尝试了各种中间件示例,并制作了一些简单的重定向代码,但是,如前所述,export default {
middleware: 'authenticated',auth: 'guest'
}
总是从服务器端返回app.$auth.loggedIn
,所以我从没有重定向过。
false
middleware/authenticated.js
后来,当Vue为应用程序补水时,export default function ({ app,redirect }) {
if (app.$auth.loggedIn) {
return redirect(app.localePath({ name: 'index' }))
}
}
当然就是loggedIn
。
有什么想法我做错了吗?任何指导都会有很大帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。