2015-04-18 2 views
0

J'utilise Google oAuth avec ngCordova. Bien que je puisse récupérer access_token, l'appel suivant pour obtenir refresh_token échoue. Voici ma demande. enter image description hereLe paramètre requis est manquant: grant_type ngCordova/angular

Je me suis assuré que

  1. type de contenu est défini.
  2. Les données sont enregistrées en tant que données de formulaire et non en tant que chaîne de requête.

Voici le code Javascript

var clientSecret = encodeURI(result["access_token"]); 
var req = { 
    method: "POST", 
    url:"https://accounts.google.com/o/oauth2/token", 
    headers:{ 
      "Content-Type":"application/x-www-form-urlencoded" 
      }, 
    data : {"code":clientSecret,"client_id":"XXXXX","client_secret":"XXX", 
      "redirect_uri":"","grant_type":"authorization_code",scope:""} 
}; 
$http(req).success(...).error(...); 

S'il vous plaît quelqu'un me dire ce que je fais mal.

Répondre

0

Mon mauvais, le problème était avec l'approche d'authentification choisie par moi. J'utilisais ngCordova pour appeler le flux d'authentification Google, qui définit response_type à token. Dans mon cas, puisque je m'attendais à refresh token être créé une fois que l'utilisateur autorise l'application, le response_type était supposé être réglé sur code.

J'ai modifié le code et cela a fonctionné.