J'ai un serveur oauth sécurisé avec 'spring-cloud-oauth2' et 'spring-cloud-security' et l'application est une application de démarrage à ressort. J'essaie d'obtenir access_token d'une application angulaire 2, c'est-à-dire que je veux me connecter à partir de l'application angulaire 2. Dans mon serveur oauth j'ai un client-id = microservice et client-secret = microservicesecret. J'ai vérifié le serveur oauth du facteur où, dans la section d'autorisation, pour le nom d'utilisateur et le mot de passe, j'utilise respectivement le client-id et le client-secret. Et dans la section body, j'utilise grant_type = mot de passe, client_id = microservice, username = [email protected], password = passw0rd et tout fonctionne très bien.Comment connecter une application angulaire 2 avec un serveur spring-oauth2?
Mais, j'ai du mal à utiliser la configuration dans l'application angulaire 2. J'ai utilisé les extraits de code suivants.
userLogin(){
console.log("In the userLogin()");
var username:string='microservice';
var password:string='microservicesecret';
let headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('grant_type','password');
headers.append('client_id','microservice');
headers.append('client_secret','microservicesecret');
headers.append('username',this.user.userEmail);
headers.append('password',this.userPassword);
console.log("User");
console.log(this.user);
console.log(headers);
console.log(JSON.stringify({username:username,password:password}));
var data = "username=" + username + "&password=" + password ;
this.http
.post(this.loginUrl,
JSON.stringify({user,password}),
{headers}
)
.map(res=>res.json())
.map((res)=>{
if(res.success){
console.log("Success");
localStorage.setItem('access_token',res.access_token);
console.log("Access token");
console.log(res.access_token);
}
});
}
Ici userEmail et userPassword sont insérés par l'utilisateur. L'URL jeton est
loginUrl:string="http://localhost:9000/services/oauth/token";
Mais, je suis gettng erreur 401. J'ai besoin de solution.