Я пытаюсь внедрить средства проверки подлинности в Nuxt с Firebase Auth, но продолжаю сталкиваться с проблемами.В данный момент я могу войти, но правильная страница не загружается после входа в систему, после входа пользователь должен быть перенаправлен на страницу «/ profile-Overview», но этого не происходит.Когда я перехожу со страницы «Профиль» на другую страницу и затем возвращаюсь, я автоматически перехожу на страницу «Обзор профиля».Таким образом, вход в систему работает, что-то не так с навигацией / обновлением страницы после входа в систему.Кроме того, когда я обновляю страницу, пользователь снова вышел из системы, я бы, кроме пользователя, все еще входил в систему?
Мой код пока:
Страница:
loginGoogle () {
this.$store.dispatch('signInWithGoogle').then(() => {
console.log('reload')
location.reload()
//window.location.reload(true)
}).catch((e) => {
this.title = 'Google login failed'
this.message =
"Something went wrong, please try again later. If this problem keeps happening please contact: jonas@co-house.be " + "Error: " + e.message;
this.dialog = true;
})
},
Промежуточное ПО:
export default function ({ store, redirect, route }) {
console.log('user state' + store.state.user)
console.log('route ' + route.name)
store.state.user != null && route.name == 'profile' ? redirect('/profile-overview') : ''
store.state.user == null && isAdminRoute(route) ? redirect('/profile') : ''
}
function isAdminRoute(route) {
if (route.matched.some(record => record.path == '/profile-overview')) {
return true
}
}
Плагин:
import {auth} from'@/services/fireInit.js'
export default context => {
const { store } = context
return new Promise((resolve, reject) => {
auth.onAuthStateChanged(user => {
if (user) {
return resolve(store.commit('setUser', user))
}
return resolve()
})
})
}
Store (функция только для входа в систему:
signInWithGoogle ({ commit }) {
return new Promise((resolve, reject) => {
auth.signInWithPopup(GoogleProvider).then((result) => {
// This gives you a Google Access Token. You can use it to access the Google API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
return resolve(store.commit(state.user, result.user))
// ...
}).catch((error) => {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
})
})
},
Кто-нибудь знает, что я могу делать неправильно, или некоторыедокументацию / учебное пособие я мог прочитать?
Заранее спасибо.