首页 > 解决方案 > Vue 3 路由器推入挂钩

问题描述

我在使用 Vue 3 router.push() 函数时遇到问题。我正在尝试登录用户,或者实际上取消登录。这个想法是,用户被重定向到另一个页面,这个页面返回 oAuth 令牌进行验证。因此,在任何情况下,第三方登录页面都会重定向到我的网站并返回 oAuth 代码或错误。如果客户已登录,它会将他重定向到我的网站,如果没有,它必须将他返回到我网站的主页,但这并没有按预期工作。

所以这是我的钩子

onBeforeMount(async () => {
      await ExecuteLoginRequest(props.pre_auth_code)
      .catch(reason => {        
        error.value = reason;
        if(!props.pre_auth_code && router.currentRoute.value.query.error === 'canceled_by_user'){
            router.push({ name: "home.index"})
            return true;
        }
        throw new Error(reason)
      }).then(async (value) => {
        return value;
      })
      .then(value => {
        resumeUser();
        return value;
      })
    })

问题是,router.push 没有重定向到主页,它实际上是将用户重定向到登录页面,我不知道它是如何获取这个 url,因为我的 url 实际上是 localhost。

作为一个错误,我有:

在 <ComponentNameHere pre_auth_code=false state=false onVnodeUnmounted=fn ... > at at at 执行 beforeMount 挂钩期间出现未处理的错误

我在这里做错了什么?

标签: javascriptvue.js

解决方案


推荐阅读