У меня есть это маленькое приложение с перехватчиком (fakebackend). Регистрация работает нормально, но потом я пытаюсь войти в систему с ошибкой Username or password is incorrect
Функции маршрутизации перехватчика:
function register() {
const user = body
if (users.find(x => x.username === user.username)) {
return error('Username "' + user.username + '" is already taken')
}
user.id = users.length ? Math.max(...users.map(x => x.id)) + 1 : 1;
users.push(user);
localStorage.setItem('users', JSON.stringify(users));
return ok();
}
function authenticate() {
const { username, password } = body;
const user = users.find(x => x.username === username && x.password === password);
if (!user) return error('Username or password is incorrect');
return ok({
id: user.id,
username: user.username,
firstName: user.firstName,
lastName: user.lastName,
token: 'fake-jwt-token'
})
}
Регистрация ts:
Форма регистрации: FormGroup (работает нормально)
constructor(private fb: FormBuilder, private auth: AuthService, private router: Router) { }
ngOnInit(): void {
this.signupform = this.fb.group({
username: ['', Validators.required],
email: ['', Validators.required],
password: [null, Validators.required]
})
}
get username() { return this.signupform.get('username') }
get email() { return this.signupform.get('email') }
get password() { return this.signupform.get('password') }
onSubmit() {
if (this.signupform.invalid) return;
let credentials={
username: this.username.value,
email: this.email.value,
password: this.password.value
}
this.auth.signUp(credentials)
.subscribe(user => {
console.log(user)
this.router.navigate(['/login'])
})
}
}
Логин TS:
export class LoginComponent implements OnInit {
returnUrl: string;
form: FormGroup
constructor(private fb: FormBuilder,
private authService: AuthService,
private route:ActivatedRoute,
private router: Router) { }
ngOnInit(): void {
console.log(localStorage)
this.form = this.fb.group({
username: ['', Validators.required],
password: [null, Validators.required]
})
this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';
}
onSubmit() {
if (this.form.invalid) return;
let credentials = {
username: this.form.get('username'),
password: this.form.get('password')
}
this.authService.login(credentials)
.pipe(first())
.subscribe(data=>{
this.router.navigate([this.returnUrl]);
})
}
}
Логин HTML
Что мне здесь не хватает? Любая помощь?