Angular: проблема с логином при использовании перехватчика - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть это маленькое приложение с перехватчиком (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

image

Что мне здесь не хватает? Любая помощь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...