Навигация по разрешениям в vuejs + laravel?

avatar
Miedkes
9 августа 2021 в 05:51
199
1
-1

У меня есть страница со списком кампаний. Теперь я хочу, чтобы когда пользователь входит в систему, если у него нет доступа к странице со списком кампаний, он не будет отображать меню и не будет разрешать доступ к этому URL-адресу? Дайте мне идеи. Спасибо

Обновление: Моя проблема похожа на эту: Разрешение маршрутизатора в vuejs + laravel?

Источник
Amirhossein Shahbazi
9 августа 2021 в 05:55
1

См. Навигационная защита

Ответы (1)

avatar
Shady
9 августа 2021 в 13:58
1

Вы можете сохранить состояние в хранилище Vuex. Затем в маршрутизаторе вам нужно проверить, вошел ли пользователь в систему, и перенаправить пользователя на страницу входа.

router.beforeEach((to, from, next) => {
  if (to.matched.some(record => record.meta.requiresAuth)) {
    // this route requires auth, check if logged in
    // if not, redirect to login page.
    if (!store.getters.isLoggedIn) {
      next({ name: 'Login' })
    } else {
      next() // go to wherever I'm going
    }
  } else {
    next() // does not require auth, make sure to always call next()!
  }
})

Вот исходный ответ: https://coderhelper.com/a/52663166/9318504

Для простого отображения или скрытия таких элементов, как панель навигации или меню, вы можете просто использовать v-if

<Navigationbar v-if="userLoggedIn" />
<Menu v-if="userLoggedIn" />
Miedkes
9 августа 2021 в 14:03
0

Спасибо. Моя проблема похожа. Можете ли вы взглянуть и помочь мне снова?. coderhelper.com/questions/68710925/…

Shady
9 августа 2021 в 14:15
0

@Miedkes Вопрос, который вы связали, использует Laravel. Я не совсем знаком с фреймворком, поэтому не могу вам с этим помочь. Вот несколько руководств: - medium.com/@ripoche.b/… - dev.to/romanpaprotsky/…

Miedkes
9 августа 2021 в 14:21
1

Все нормально. В любом случае, вы помогли мне отличным ответом. Спасибо