2015-07-01 6 views
10

Ich versuche, Token & erfrischen Token mit OAuth.io für Google-Provider zu erhalten. Ich habe offline für den access_type in OAuth.io gewählt.Erhalte Tokens von Google mit OAuth.io JS SDK (Client-Seite)

Es folgt der Code

OAuth.popup("google", {'authorize' : { "approval_prompt" : 'force'}}) 
    .done(function(result) { 
     console.log(result); 
    }) 
    .fail(function (err) { 
     //handle error with err 
     console.log(err); 
    }); 

Ich erhalte nicht in der Antwort refresh_token. Ich bekomme nur access_token von der Antwort.

JSON-Antwort für Zugriffstoken ist:

{ 
     "status": "success", 
     "data": { 
      "access_token": "ya29.pAGQWe3yxxxxxx", 
      "token_type": "Bearer", 
      "expires_in": 3600, 
      "request": { 
       "url": "https://www.googleapis.com", 
       "headers": { 
        "Authorization": "Bearer {{token}}" 
       } 
      }, 
      "id_token": "eyJhbGciOiJSUzIxxxxxxxx" 
     }, 
     "state": "Q9nfocQXJxxxx", 
     "provider": "google" 
    } 

Referenz

ich diesen SO Link Getting refresh tokens from Google with OAuth.io gefunden haben Hier haben sie erklärt, wie Aktualisierungs-Token in Server-Seite zu bekommen.

Ich möchte Refresh-Token in Client-Seite JS erhalten.

+0

Können Sie es nicht an den Client vom Server übergeben? – winhowes

Antwort

2

Goto OAuth.io App allgemeinen Einstellungen, wählen Sie Zusatzoptionen anzeigen und wählen Sie dann senden Aktualisierungs-Token zu Front-End-.

Wählen Sie in den integrierten APIs Zugriffstyp als offline. Dadurch wird die Aktualisierungs-Token an Frontend senden, während mit dem folgenden Code

var oauthOptions = { 'authorize' : { "approval_prompt" : "force" } }; 
    OAuth.popup("google", oauthOptions) 
       .done(function(result) { 
        console.log("Post postProcessing"); 
        console.log(result); 
       }) 
       .fail(function (err) { 
        console.log(err); 
       }); 

enter image description here

-1
  1. Go Konto Sicherheitseinstellungen und klicken Sie auf Bearbeiten
  2. https://www.google.com/settings/u/1/security.
  3. neben "Autorisierung von Anwendungen und Websites". Dann klicken Sie auf "Widerrufen
  4. Zugriff" neben Ihrer App. Die nächste OAuth2-Anforderung, die Sie vornehmen, lautet
  5. . Geben Sie ein refresh_token zurück.

Sie können auch Here

+0

Ich habe Berechtigungen für meine App widerrufen. Dann habe ich OAuth gestartet, ich empfange nicht das refresh_token – Valarpirai

0

Versuchen Sie, die erste Zeile mit offener Oauth spielen:

OAuth.popup("google", { 
    'authorize' : { 
    "approval_prompt" : "force", 
    "access_type" : "offline"}}) 

Google's docs beschreiben, wie offline Refresh-Token arbeiten.

+0

Ich versuchte mit access_type: "offline", refresh_token ist nicht in der Antwort erhalten. – Valarpirai

+0

Können Sie versuchen, eine OAuth-Anfrage mit Firebug oder Chrome Dev Tools auszuführen, um genau zu sehen, welche URL OAuth.io trifft? –

+0

https://oauth.io/auth/google?k=ndXMRv8xxxxxx&d=http://localhost/&opts={"authorize":{"approval_prompt":"force","access_type":"offline"},"state ":" nBGE8Rv1ufxxxxxxxx "," state_type ":" client "} Dies ist die (decodierte) URL, die Oauth.io JS verwendet, um das Popup-Fenster zu öffnen – Valarpirai

Verwandte Themen