Vue.js Vue路由器保护排除到带有令牌的路径
我已经在我的应用程序中实现了验证电子邮件。注册后,用户将获得验证电子邮件的url,例如:Vue.js Vue路由器保护排除到带有令牌的路径,vue.js,Vue.js,我已经在我的应用程序中实现了验证电子邮件。注册后,用户将获得验证电子邮件的url,例如: http://localhost:8080/verify_email/xdGCmMGz6LrBv0s_97gDvQ 我有一个路由器防护装置,具有以下条件: else if (store.state.signedIn && !store.state.currentUser.email_confirmed && to.path !== '/warning_verify_emai
http://localhost:8080/verify_email/xdGCmMGz6LrBv0s_97gDvQ
我有一个路由器防护装置,具有以下条件:
else if (store.state.signedIn && !store.state.currentUser.email_confirmed && to.path !== '/warning_verify_email' && to.path !== '/verify_email/:token') next('/warning_verify_email')
路由/警告\u验证\u电子邮件是一个组件,它只提供一个警告,以检查电子邮件并在继续之前进行验证
我遇到的问题是:
to.path !== '/verify_email/:token'
哪一个不应该
http://localhost:8080/verify_email/xdGCmMGz6LrBv0s_97gDvQ
重定向到
/warning_verify_email
但确实如此
在路由中,path:'/verify\u email/:token'
起作用。所以我想这在守卫中也会起作用。但事实并非如此
如何修复?您的问题可能是您的状况
to.path
是实际的路由而不是定义,因此在您的示例中,to.path
将是'/verify\u email/xdGCmMGz6LrBv0s\u 97gDvQ'
。您需要将改为.matched
:
const isVerifyRoute = to.matched.some(route => route.path === '/verify_email/:token');