У меня возникли проблемы с получением токена для входа в мое 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