Я пытаюсь, чтобы пользователи напрямую входили в мое приложение после создания с помощью аутентификации Firebase. У меня есть метод signUp и метод signIn.
У меня есть authguard, который возвращает отказ в доступе при вызове метода signIn после создания пользователя.
Мой метод signUp выглядит следующим образом:
// Sign up with email/password
async signUp(email, password) {
return this.afAuth.createUserWithEmailAndPassword(email, password)
.then((result) => {
this.signIn(email, password);
}).catch((error) => {
console.log(error);
});
}
Мой метод входа выглядит следующим образом:
// Sign in with email/password
async signIn(email, password) {
// sign user into firebase auth but not into the application
return this.afAuth.signInWithEmailAndPassword(email, password)
.then((result) => {
this.router.navigate(['auth']);
}).catch((error) => {
window.alert(error.message);
});
}
Вот мой метод аутентификации:
canActivate(next, state): Observable<boolean> {
return this.auth.user$.pipe(
take(1),
map(user => !!user),
tap(loggedIn => {
if (!loggedIn) {
console.log('access denied');
this.router.navigate(['/']);
}
})
);
}