Bonjour,
j'ai un client en angularJS avec lequel je veux récupérer l'access token via un web service(le backend est avec php5) lorsque je remplit le formulaire de login et pssword puis le clique sur le boutton "Log in",voici mon controleur:
'use strict';
/* Controllers */
// signin controller
app.controller('SigninFormController', ['$rootScope','$scope','$http', '$state','$localStorage', function($rootScope, $scope, $http, $state,$localStorage) {
$scope.user = {};
$scope.authError = null;
$scope.login = function() {
$scope.authError = null;
// Try to login
$http({method: 'POST', url: 'monURL/oauth/v2/token?client_id=idclient&client_secret=secretclient'})
.success(function(data){
$scope.errors.splice(0, $scope.errors.length); // remove all error messages
$scope.msgs.splice(0, $scope.msgs.length);
$scope.posts = data;
$localStorage.token = data.access_token;
$state.go('app.dhome');
})
.error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
$scope.authError = 'Email or Password not right';
console.log("erreur");
}); };
voici le résultat de l'URL monURL/oauth/v2/token?client_id=idclient&client_secret=secretclient sous format json:
{"access_token":"ABSCD...","expires_in":3600,"token_type":"bearer","scope":"user"}
je veux que la valeur de l'access token récupéré à partir de résultat de l'URL ci-dessus sera enregistré au niveau de session ,pourque à chaque requête je peux le mettre,comme ceci:
url:monURL/api/clients.json?access_token=ABSCD...
mais ce que j'ai réçu au niveau de console c'est "erreur"
merci pour l'aide
Salut,
Avant de rentrer dans le vif du sujet, j'ai quelques remarques. Au vue de ton code, je constate que pour authentifié ton utilisateur, tu envoi au serveur le client_id
ainsi que le client_secret
. Dans la mesure ou ton application est en Javascript c'est très très dangereux de stocker le client_secret
ici. Apparement, tu utilise OAuth, je te conseil donc de modifier ton type d'authentification pour un implicit grant flow
(https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2). Tu n'as en fait ici besoin que du client_id
pour t'authentifier auprès de ton backend.
Ensuite, lors de ton login, a aucun moment tu ne semble envoyer les données username
et password
a ton serveur. Est-tu sur que l'authentification soit valide au niveau de ton backend?