0

Ich versuche, meine Facebook-App gegen einen Benutzer zu authentifizieren.Facebook oauth Antwort mit falsch formatierten URL-Parameter

Meine Anwendung bietet die folgenden für den Start des oauth Zulassungsverfahren:

https://graph.facebook.com/oauth/authorize?state=abc&response_type=code&client_id=292634984182123&redirect_uri=http://dev.foo.com:12020/app/c-rex/authorize-facebook-action/&scope=publish_pages,email&type=user_agent

Dann wird der Browser leitet auf Facebook, fragt für die Berechtigungen und leitet auf die Umleitungs-URL gegeben, aber mit den falschen URL-Parameter:

http://dev.foo.com:12020/app/c-rex/authorize-facebook-action/?#state=abc&access_token=wqeqeqBAJmOBc25oYf64IaJBO8Y7k0pOgfo3q3PzoystyqvGPFeve5F8RxZCWtAVUyZB14YaWaZC4escFL69UxcZCHZBI2riqx88rUdKFx7riLPY83D1uY1Qtf9LJfZBuC1nv7sJH1BmIOXV0ZAP94jiaXV5M5tNU99lucTAZDZD&expires_in=6078

wie Sie die Query-String leer ist und stattdessen die Abfrage-Strings nach dem '#' als URL-Fragment sehen. Es sieht ziemlich komisch aus ... Die URL wäre korrekt, wenn sie das Hashzeichen nicht enthalten würde. Da Fragment für den Server irrelevant ist, kann ich das Fragment nicht von der URL in meinem Code abholen.

Ist das ein Facebook-Bug?

+0

Nein, es ist sehr wahrscheinlich, dass Sie anfangs falsche Parameter übergeben haben. Zum Beispiel, dass Sie einen 'code' Parameter bereits drin haben, macht keinen Sinn - Sie erhalten einen Code _back_ aus dem Login-Dialog, nachdem der Benutzer die App autorisiert hat, und dann muss Ihre App diesen Code für ein Zugriffs-Token austauschen. Das Starten des gesamten Prozesses mit einem bereits vorhandenen "code" -Parameter macht also überhaupt keinen Sinn. – CBroe

+0

Der "Code" macht keinen Unterschied. In der Tat mit geänderter URL wie https://graph.facebook.com/oauth/authorize?state=xxxx&redirect_uri=http://dev.foo.com:12020/app/c-rex/authorize-facebook-action/&response_type= code & client_id = xxxxxxxx & scope = publish_pages, email & type = user_agent das Problem bleibt –

+0

Gehen Sie https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow#login für den richtigen Weg, um die Anmeldedialog – CBroe

Antwort

1

https://developers.facebook.com/docs/apps/changelog

[OAuth-Zugriffstoken] Format - Das Antwortformat von https://www.facebook.com/v2.3/oauth/access_token zurückgegeben, wenn Sie einen Code für einen access_token tauschen jetzt gültige JSON zurückgeben statt URL codiert zu werden. Das neue Format dieser Antwort lautet {"access_token": {TOKEN}, "token_type": {TYPE}, "expires_in": {TIME}}. Wir haben dieses Update so erstellt, dass es mit Abschnitt 5.1 von RFC 6749 konform ist.