Ошибка: не удается прочитать свойство "токен" со значением NULL. - PullRequest
0 голосов
/ 07 мая 2020

У меня возникли проблемы с получением токена для входа в мое Angular приложение / API REST Вот компоненты и службы, которые я использовал. Часть регистрации работает нормально, я даже получаю всю информацию в моей БД в правильных типах, но основная проблема связана с входом в систему. Думаю, весь импорт правильный.

export class LoginComponent implements OnInit {

  loginForm: FormGroup;
  username = '';
  password = '';
  isLoadingResults = false;

  constructor(private formBuilder: FormBuilder, private router: Router, private authService:
    AuthService) {}

  ngOnInit() {
    this.loginForm = this.formBuilder.group({
      'username': [null, Validators.required],
      'password': [null, Validators.required]
    });
  }

  onFormSubmit(form: NgForm) {
    this.authService.login(form)
      .subscribe(res => {
        console.log(res);
        if (res.token) {
          localStorage.setItem('token', res.token);
          this.router.navigate(['ads']);
        }
      }, (err) => {
        console.log(err);
      });
  }

  register() {
    this.router.navigate(['register']);
  }
}

А вот и мой сервис авторизации:

const apiUrl = 'http://localhost:9191/';

const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type': 'application/json',
    'Allow-Control-Access-Origin': '*'
  })
};


@Injectable({
  providedIn: 'root'
})
export class AuthService {
  isLoggedIn = false;
  redirectUrl: string;

  constructor(private http: HttpClient) {}

  login(data: any): Observable<any> {
    return this.http.post<any>(apiUrl + 'login', data, httpOptions)
      .pipe(
        tap(_ => this.isLoggedIn = true),
        catchError(this.handleError('login', []))
      );
  }
  register(data: any): Observable<any> {
    return this.http.post<any>(apiUrl + 'users/signup', data, httpOptions)
      .pipe(
        tap(_ => this.log('login')),
        catchError(this.handleError('login', []))
      );
  }
  //handleError and log methods here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...