vue.js 如何避免“错误:避免到当前位置的冗余导航:“/inside/home”当auth guard不允许该路由时

k4emjkb1  于 2023-08-07  发布在  Vue.js
关注(0)|答案(1)|浏览(85)

因此,当用户注销时,我希望vue只是路由到默认的着陆页。不幸的是,按照目前的情况,这意味着vue将路由到 current 路由。
但是,有一个防护程序不允许此路由并将其发送到登录页面。
但是因为对“同一路线”的检查没有考虑到警卫,我得到了这个错误...

yeotifhr

yeotifhr1#

所以这里的关键问题是,守卫不适用于重定向。也就是说,你不能阻止一个路由通过一个守卫重定向。所以即使守卫失败,重定向也会通过。
因此只有在所有重定向都被应用之后,才能应用防护。
在我的例子中,我在一个特定的页面(一个路由)上,用户点击注销。我希望能够做的只是制定注销,然后发送用户回到“默认”或第一页。这不起作用,因为该页面恰好与我当前所在的位置相同,并且因为没有应用防护(当用户注销时,它们会失败),vue认为路由会将我发送回同一个位置。通常情况下,如果应用了防护,我会被路由到登录页面。
解决方案是 * 不 * 将用户发送到登录页面,而是将他们发送到登录页面或其他默认的“外部”花园页面。

相关问题