Abrufen der Anwendungs-ID vom Benutzerzugriffstoken (oder Überprüfen der Quellanwendung für ein Token)
Fand ich diese Frageeine Antwort, aber facebook verändert das token-format sein, da dann, jetzt ist es etwas wie:
AAACEdEose0cBACgUMGMCRi9qVbqO3u7mdATQzg[more funny letters]ig8b3uss9WrhGZBYjr20rnJu263BAZDZD
Kurz, man nicht folgern kann nichts von ihm.
Ich fand auch die access token debugger, das zeigt die Informationen, die ich bin auf der Suche für, wenn Sie fügen Sie ein token, das ist schön, aber nicht mir helfen wollen, es programmatisch.
Punkt ist, wenn jemand bekommt ein token für einen Benutzer, kann er es verwenden, um den Zugriff auf die Grafik, die ist, was ich in meiner Bewerbung - ich möchte sicher sein, dass die Menschen mit der Weiterleitung der token ausgestellt wurde, um Sie in meiner Anwendung, und nicht die andere.
Meine Bewerbung fließen wird:
- Get access token von facebook (nichts besonderes, in der Art, wie es beschrieben wird in hier , Server-side-Flow. (auch iPhone-und android und verwendet werden, aber Sie haben ähnliche fließt, wenn ich mich Recht erinnere))
[Gerät] - <-> [facebook] - Mit diesem access token, das Gerät Zugang zu meiner application server mit dem token
[Gerät] - <-> [Jonathan]
Auf meinem server mache ich das Zugriffstoken für den Benutzer und verwenden, die Berechtigungen zu erteilen, dass die Benutzer meiner Anwendung. (mit dem facebook connect, um Benutzer zu authentifizieren)
Meine Anwendung ist gesichert, und der Zugang erfolgt auch authentifiziert, unabhängig von facebook, ABER! in diesem Fluss, der einer schwachen link, den ich identifiziert ist, dass ich mich nicht authentifizieren kann für Sie sicher, dass der access-token, die ich bekam war signiert haben für meine Anwendung - ich weiß es nicht, weil ich die Token cache für die offline-Nutzung, will ich 100% sicher, Sie sind für meine Anwendung, mit meinen Berechtigungen.
Was also wird die (beste) Art und Weise zu authentifizieren, dass die token, die ich habe ist in Bezug auf meine Anwendung (für relation zu user, ich benutze die token, um den Zugriff /die mich und sehen, welche Benutzer dieses token ist für)
Brauche ich nicht zum entschlüsseln der token (ich denke, es ist eine Art AES), ich bin gerade auf der Suche nach einem endpoint, der wird mir sagen, das token, passte zu dem Anwendungs-id.
(EDIT: Mit dem C# SDK, wenn es darauf ankommt.. Aber ein graph - /rest-Aufruf zu geben, die info ist nur so gut wie gut 🙂 )
InformationsquelleAutor der Frage Jonathan Levison | 2011-11-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
https://graph.facebook.com/app/?access_token=%5Buser_access_token%5D
Das liefert die app diese token generiert wurde, können Sie vergleichen, dass Sie gegen Ihre app-id.
InformationsquelleAutor der Antwort Daaniel
Die offiziellen Graphen Endpunkt für die Prüfung von Zugangs-Token:
Beispiel Antwort:
app_token_or_admin_token
werden können, die mit Hilfe der Graph-API-Aufruf:Den debug_token endpoint fehl, wenn das user_access_token gehört nicht zu der app, generiert die app_token_or_admin_token.
Relevanten facebook-Dokumentation:
Inspektion access Token:
https://developers.facebook.com/docs/facebook-login/login-flow-for-web-no-jssdk/#checktoken
App-Token:
https://developers.facebook.com/docs/facebook-login/access-tokens/#apptokens
InformationsquelleAutor der Antwort vially
Einen dokumentierten Weg, um dies sicherzustellen, ist die Verwendung
appsecret_proof
.Dieser überprüft nicht nur, dass es ein gültiges token, aber auch, dass das token gehört zu der app. Es bekommt Ihr auch user-Daten in einem Rutsch.
Können Sie ableiten
PROOF
oben in C# unter Verwendung dieser (aus hier):InformationsquelleAutor der Antwort Nuno Cruces
Warum nicht verwenden offiziellen Weg, Dinge zu tun? Hier ist die Anfrage von FB-eigenen video-zur Sicherheit.
Anfrage:
https://graph.facebook.com/debug_token?input_token={token-to-check}&access_token={app_id}|{app_secret}
Antwort:
"data": { "app_id": {token-app-id}, "user_id": {token-user-id}, ... }
Link zu einem offiziellen video: https://www.facebook.com/FacebookforDevelopers/videos/10152795636318553/
Ich einen screenshot gemacht, so dass die Zeit sichtbar ist, und Sie finden weitere Informationen, wenn Sie interessiert sind.
InformationsquelleAutor der Antwort Raimundas Sakalauskas