Nuxt. js маршрут, основанный на ролях пожарного магазина - PullRequest
0 голосов
/ 22 апреля 2020

Я успешно настроил компоненты Register / Login в nuxt. js и все работает нормально. Тем не менее, я столкнулся с препятствиями, так как мне нужно перенаправить вошедших в систему пользователей (в зависимости от их роли, хранящейся в firebase / firestore. Я знаю, что nuxt автоматически генерирует маршруты на основе дерева страниц, но для жизни я не знаю где поставить свои чеки (или действительно, как заставить это работать). Я нашел статью, основанную на vue + firebase / firestore, но маршрутизация там другая.

Я попытался добавить в некоторое промежуточное ПО мы надеемся контролировать маршруты (role-base-route. js)

    import * as firebase from 'firebase/app'
    import 'firebase/auth'
    import 'firebase/firestore'


export default function ({ route, from, store, redirect }) {

  firebase.auth().onAuthStateChanged(userAuth => {

    if (userAuth) {
      firebase.auth().currentUser.getIdTokenResult()
        .then(function ({
          claims
        }) {

          if (claims.social) {
            if (to.path !== '/social')
              return redirect({
                path: '/social',
              })
          } else if (claims.admin) {
            if (to.path !== '/admin')
              return redirect({
                path: '/admin',
              })
          } else if (claims.management) {
            if (to.path !== '/management')
              return redirect({
                path: '/management',
              })
          }

        })
    } else {
      if (to.matched.some(record => record.meta.auth)) {
        redirect({
          path: '/login',
          query: {
            redirect: to.fullPath
          }
        })
      } else {
        redirect()
      }
    }

  })

  redirect()

}

Приведенный выше код не выдает никаких ошибок, которые я вижу. Однако, когда я go, чтобы войти как пользователь, нет " редиректы "выброшены

...