I would like get token after login.
This is my login.component
login() {
this.service.login(this.user.value.email, this.user.value.password)
.then(
res => console.log(res),
error => this.handleError(error.error.error)
);
// this.router.navigate(['/painel']);
}
And now I have my authentication.ts
login(email: string, password: string) {
let promise = new Promise((resolve, reject) => {
this.http.post<any>(this.api, { email, password })
.toPromise()
.then((res) => {
if(res) {
this.isAuthenticated = true;
this.showMenuEmitter.emit(true);
localStorage.setItem("token", res.token);
localStorage.setItem("user_id", res.user.id);
this.router.navigate(['/painel']);
resolve(res.token);
} else {
this.isAuthenticated = false;
this.showMenuEmitter.emit(false);
reject(false);
}
})
.catch((error) => {
console.log(error);
reject(error);
});
})
return promise;
}
And now, I need take the token to work in provider.service
api: string = `${environment.apiHost}/painel`;
public headers = new HttpHeaders(
{
'Authorization': 'Bearer ' + localStorage.getItem('token')
}
);
constructor(private http: HttpClient) { }
create(user: any, path: string) {
return this.http.post(`${this.api}/${path}`, user, { headers: this.headers });
// toPromise();
}
But when I logged I get error in console like this:
Http failure response for http://127.0.0.1:8000/api/panel/users: 401 Unauthorized
how to get token in another service after login ?
I can only get token if I take refresh in the page so I get token.