Я успешно настроил компоненты 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, чтобы войти как пользователь, нет " редиректы "выброшены