Новый асинхронный Vue () для ожидания начальной аутентификации - PullRequest
0 голосов
/ 25 июня 2018

Я довольно новичок в Vue и в настоящее время настраиваю приложение, которое использует аутентификацию firebase и firestore для базового RBAC. Для предотвращения доступа неавторизованных пользователей к маршрутам мой маршрутизатор имеет собственный AuthGuard, проверяющий роли локальных пользователей (в бэкэнде реализованы аналогичные правила)

export default new Router({
  routes: [
    {
      path: '/users',
      name: 'Users',
      component: Users,
      beforeEnter: AuthGuard(user => user.uid && user.roles.admin)
    }
..
]})

Одна проблема, с которой я столкнулся при этой настройке, заключается в том, что отправка людям ссылок на защищенные страницы не работает. Защита авторских прав не позволяет им загружать страницу, потому что локальный user не устанавливается инициализированным при инициализации приложения Vue.

Итак, я придумал способ , чтобы отложить создание моего приложения Vue путем структурирования моего main.js чего-то такого:

import Vue from 'vue'
...
init()
.then(() => new Vue(..)

Во время выполнения функции init я жду, когда сработает firebase.auth().onAuthStateChanged и сообщит, есть ли у пользователя действующий токен или нет. Он работает , но не чувствует себя хорошо.

Можно ли асинхронно создавать новое приложение Vue? Есть ли лучшие методы, такие как ленивая загрузка аутентификации на маршруте или что-то в этом роде?

1 Ответ

0 голосов
/ 25 июня 2018

Я делаю то же самое с аутентификацией Vue и Azure Active Directory, кажется, это лучший способ сделать это.

Пожалуйста, смотрите ответ Miguels: https://stackoverflow.com/a/45899653/2703700

Это ответ вамискали?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...