Я реализовал метод входа с паролем и вводом электронной почты. Но даже незарегистрированные электронные письма могут войти. Существует предупреждающее сообщение о том, что электронная почта не соответствует какой-либо записи в базе данных, однако я попадаю на домашнюю страницу:
Служба аутентификации:
login(email, password) {
return this.afAuth.auth.signInWithEmailAndPassword(email, password)
.then((result) => {
this.router.navigate(['/home']);
}).catch((error) => {
window.alert(error.message)
})
}
Компонент входа в систему TS:
ngOnInit() {
this.loginForm = this.fb.group({
email: ['', Validators.required],
password: ['', Validators.required]
});
}
get email() { return this.loginForm.get('email') }
get password() { return this.loginForm.get('password') }
onSubmit() {
if (this.loginForm.invalid)
return;
this.authService.login(this.email.value, this.password.value)
.then(data => {
let returnUrl = this.route.snapshot.queryParamMap.get('returnUrl');
this.router.navigate([returnUrl || '/home']);
console.log(data)
}).catch(error => {
console.log(error)
})
}
И HTML
<form [formGroup]="loginForm" (ngSubmit)="onSubmit()">
<div class="form-row">
<div class="col-md-6">
<label for="email">Email</label>
<input type="text" formControlName="email" class="form-control">
<div *ngIf="email.touched && email.invalid" class="alert alert-danger">
<div *ngIf="email.errors.required">email is required</div>
</div>
</div>
<div class="col-md-6">
<label for="password">Password</label>
<input type="password" formControlName="password" class="form-control">
<div *ngIf="password.touched && password.invalid" class="alert alert-danger">
<div *ngIf="password.errors.required">Password is required</div>
</div>
<div *ngIf="errorMessage" class="alert alert-danger">
Username or password is incorrect
</div>
</div>
<div class="col-md-12 text-center">
<button class="btn btn-primary btn-block text-center" type="submit" style="font-weight:bold">Log in</button>
</div>
</div>
</form>
Чего-то не хватает? Почему пользователь не заблокирован?