我正在学习Nuxt.js,我感到困惑的是,通过点击触发的方法将用户重定向到另一个页面似乎有多难。
设置如下:我使用Nuxt Auth对用户进行身份验证,一旦通过身份验证,我希望他们从注册页面转发到另一个路由。我已经设置了重定向登录用户的中间件,但它只在我刷新页面时触发,而不是在我第一次登录时触发。
我有一个这样的方法:
async login(event) {
event.preventDefault()
try {
await this.$auth.loginWith('local', this.loginData)
// this is where my redirect logic should go
} catch(error) { ... }
}
到目前为止,我已经尝试使用
this.$nuxt.refresh()
这根本没用,我也试过了
this.$router.push('/route')
这似乎把页面完全挂了起来。理想情况下,我更喜欢
refresh
这样我就不必在多个地方为登录用户指定登录页面,但我还需要知道如何在方法中使用重定向,我认为这应该是可以想象到的最简单的操作,但似乎很难找到。
任何建议都将不胜感激!
更新:
我找到了一个解决方案,尽管它不是一个理想的解决方案。我添加了一个if语句
beforeCreate
这检查
this.$auth.loggedIn
如果这是真的,那么它就会召唤
this.$auth.redirect('home')
当“家”在
nuxt.config.js
在auth重定向下。此解决方案不理想的原因是它依赖于身份验证模块(而不是通用的重定向机制)。