typescript - πώς παίρνω ένα token με angular 2 (oauth2)
Έχω ένα πρόβλημα με μια υπηρεσία στο Angular 2, θέλω να πάρω ένα token από ένα apiREST στο Spring, ο διακομιστής λειτουργεί, αν κάνω το αίτημα με το Postman λειτουργεί!, αλλά δεν ξέρω πώς να κάνω το αίτημα στο Angular 2, έχω αυτόν τον κώδικα στο Angular 2
getToken(login:Login)
{
let headers = new Headers();
let urlSearchParams = new URLSearchParams();
// urlSearchParams.append(this.GRANT_TYPE,"client_credentials");
urlSearchParams.append(this.GRANT_TYPE,"password");
urlSearchParams.append(this.USERNAME, ""+login.usr);
urlSearchParams.append(this.PASSWORD, ""+login.pwd);
urlSearchParams.append("client_id","my-trusted-client");
//headers.append("Content-Type","application/json");
headers.append('Content-Type', 'application/x-www-form-urlencoded');
// headers.append('Authorization', 'Bearer ' + btoa(plainClientCredentials));
headers.append("Authorization", "Basic "+ btoa("my-trusted-client:secret"));
console.log(headers);
let url = `${this.URL_OAUTH}/${this.GET_TOKEN}`;
let body = urlSearchParams.toString()
console.log("Esta es la url: "+url+'?'+body);
return this.http.post( url, body ,{ headers })
.map(res => {
console.log(res);
// return res;
let token = res.json() && res.json().access_token;
if (token) {
// set token property
this.token = token;
// store username and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('token', JSON.stringify({token: token}));
// return true to indicate successful login
return res;
} else {
// return false to indicate failed login
return false;
}
}
,error => {
console.log(error.json());
});
}
Ο διακομιστής μου επιστρέφει κωδικό κατάστασης 401, δεν ξέρω πώς να δημιουργήσω επικεφαλίδα για να στείλω αίτημα στο oauth2