7 Stimmen

Wie erhalte ich ein Zugriffs-Token aus der von Facebook signierten Anfrage?

Wir verwenden das Facebook Javascript SDK, um unsere Benutzer zu authentifizieren.

Sobald sich ein Benutzer authentifiziert, erhält er ein fbsr_<app_id>-Cookie, das eine signierte Anfrage enthält.

Wir verwenden dann AJAX, um einige Informationen an unseren Server zu senden. Der Server erhält das Cookie mit der signierten Anfrage, aber wenn der Server die signierte Anfrage (modifiziertes Python SDK) im Cookie analysiert, dekodiert er das JSON-Objekt als:

{
   "algorithm": "HMAC-SHA256",
   "code": "2.AQDBJ3-ZpURb9P4T.3600.1316037600.1-786359552|BNK6FGOAkvMs7slboQMSIEJYDWc",
   "issued\_at": 1316031333,
   "user\_id": "786359552"
}

Dies steht im Gegensatz zu dem, was die unterzeichnete Antragsunterlagen sagt, dass wir bekommen sollten.

Der Server benötigt das Zugriffstoken, damit er über die GraphAPI zusätzliche Informationen erhalten kann.

Wie erhalten wir das Zugriffstoken aus der signierten Anfrage?

2voto

Dustin Nielson Punkte 1264

Bei Verwendung des neuen oauth2-Workflows mit dem Javascript-Sdk wird das Benutzer-Token verfügbar sein.

Nachdem Sie sich authentifiziert haben, können Sie das Token mit folgendem Befehl finden

FB.getLoginStatus(function(response) {

              if (response.status === 'connected') { 

                alert(response.authResponse.accessToken);

              }
        });

Sobald Sie das Token haben, können Sie es einfach an Ihr Backend zurückgeben, um den Graphen abzufragen.

1voto

Tolga Arican Punkte 476

Die richtige ist:

FB.getLoginStatus(function(response) {

          if (response.status === 'connected') { 

            alert(response.session.access_token);

          }
    });

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X