Kann keine Genehmigung für Benutzer in Facebook JS SDK : "Dieser Freischaltcode wurde verwendet.", oder, wie man neue Genehmigung token?
Ich versuche zu verwenden Facebook, um Benutzer zu authentifizieren. Es funktioniert ok, außer für Ajax-Aufrufe. Die meisten der Zeit, es sendet einfach alte token und ich bekomme :
{"error":{"message":"This authorization code has been used.","type":"OAuthException","code":100}}
So, was ich versucht habe zu tun ist, wickeln Sie jeden ajax-Aufruf mit
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
return fn();
...
dies nicht geklappt also habe ich Hinzugefügt : true als parameter zum getLoginStatus Cachen zu verhindern :
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
console.log('connected');
fn();
} else if (response.status === 'not_authorized') {
console.log('not_authorized);
} else {
console.log('not_logged_in');
}
},true);
Toll! Außer es ist furchtbar langsam. Mache ich etwas falsch? Bekomme ich neue token nach jeder Aktion, so brauche ich nicht zu warten, bevor der nächste?
Dank
W
InformationsquelleAutor wonglik | 2013-04-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, was Facebook sagt:
"Neue Sicherheits-Beschränkungen, die für die OAuth-Autorisierung-codes.
Wir erlauben nur Autorisierungs-codes ausgetauscht werden, für den access-Token einmal-und wird verlangen, dass Sie ausgetauscht werden für einen access-token, die innerhalb von 10 Minuten von Ihrer Entstehung. Dies steht im Einklang mit dem OAuth 2.0-Spezifikation, die von Anfang an erklärt, dass "Autorisierungs-codes MÜSSEN von kurzer Dauer sein und single use". Für mehr Informationen, schauen Sie sich unsere Authentifizierung Dokumentation.
Den Weg, um dieses ist die Verwendung der Erweiterung Ihrer access-token, api:
https://developers.facebook.com/docs/howtos/login/extending-tokens/
Ahh, ja : ) - Sie erweitern Ihre access tokens developers.facebook.com/docs/howtos/login/extending-tokens
Können Sie einen link auf die Quelle des facebook Antwort?
Meine Antwort ist jetzt 4 Jahre alt : P
InformationsquelleAutor dacopenhagen