#javascript #vue.js
#javascript #vue.js
Вопрос:
У меня есть приложение в vue с маршрутизатором vue, которое работает правильно, также в маршрутизаторе я использую навигационные ограждения для защиты своих маршрутов, проблема в том, что теперь я хочу иметь маршруты или компоненты, которые работают вне навигационных ограждений, например страницу восстановления пароля, на которую пользователь получает ссылку и можетдоступ к нему напрямую, моя проблема в том, что я хочу получить доступ к паролю восстановления напрямую по внешней ссылке, он всегда перенаправляет меня на логин, я делюсь своим кодом:
Vue.use(VueRouter)
const routes = [
{
path: '/',
name: 'home',
component: Home,
meta: {
user_type: 1
}
},
{
path: '/check-balance',
name: 'check-balance',
component: CheckBalanceComponent,
meta: {
user_type: 1
}
},
{
path: '/check-payment',
name: 'check-payment',
component: CheckPaymentsComponent,
meta: {
user_type: 1
}
},
{
path: '/payment-disabled',
name: 'payment-disabled',
component: DisabledMakePaymentComponent,
meta: {
user_type: 1
}
},
{
path: '/handle-payment',
name: 'handle-payment',
component: HandlePaymentsComponent,
meta: {
user_type: 1
}
},
{
path: '/handle-report',
name: 'handle-report',
component: HandleReportsComponent,
meta: {
user_type: 1
}
},
{
path: '/user-profile',
name: 'user-profile',
component: UserProfileComponent,
meta: {
user_type: 1
}
},
{
path: '/recover-password',
name: 'recover-password',
component: RecoverPasswordComponent,
meta: {
free: 1 //this outside navigation guards
}
},
{
path: '/recover-link',
name: 'recover-link',
component: RecoverLinkComponent,
meta: {
free: 1
}
},
{
path: '/login',
name: 'login',
component: LoginComponent,
meta: {
free: 1
}
},
{
path: '/help',
name: 'help',
component: HelpComponent,
meta: {
user_type: 1
}
}
]
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
})
router.beforeEach((to, from, next) => {
if(to.matched.some(record => record.meta.free)){
next()
}
else if(store.state.user amp;amp; store.state.user.user_type == 1){
next()
}
else {
next({
name: 'login'
})
}
})
export default router
Комментарии:
1. Можете ли вы показать путь к ссылке, которую вы пытаетесь использовать?
2. localhost:59876/api/Users/ восстановление пароля
3. Похоже, что это путь api, а не интерфейсный маршрут. Если это так, это указывает на то, что ваш сервер перенаправляет четный трафик каталога / api в приложение, что неверно. Вам нужно настроить сервер, чтобы он этого не делал. Для получения помощи в этом вам нужно будет опубликовать сведения о том, какой сервер вы используете и как настроено перенаправление