2017-09-20 5 views
0

Facebook PHP SDK v5.6.1を使用してOAuth認証を試みています。 ブラウザがリダイレクトURLに戻ると、アクセストークンの認証コードを交換できません。代わりに、私はredirect_uri_mismatchエラーを取得する:リダイレクトURLにコードパラメータがある場合、PHP SDKはトークンを取得できません

Invalid redirect: https://.../ callback does not match one of the registered values.

(それが翻訳されなければならなかったため、テキストが正確ではないかもしれない)

私はFacebookのSDKをデバッグし、このエラーの原因はcodeであることがわかりましたリクエストURLに渡されたパラメータ。通常、SDKはPHP要求からのリダイレクトURLを推測しますが、codeパラメータなしでSDKにリダイレクトURLを手動で入力すると、トークン交換は成功します。

私の目標は、コードの変更を最小限に抑えて古いバージョンからSDKをアップグレードすることです。できるだけ手動でリダイレクトURLを指定しないようにしたいと思います。 getAccessToken SDKメソッド内

、SDKは、URLからstateパラメータを削除するように注意を要しますが、明らかに削除する必要があるcodeパラメータを、削除について何もしません。

Facebook Loginの私のアプリの設定では、厳格なモードをオフにしています。

リクエストURLをリダイレクトURLとして機能させるには、他に何をすべきですか? これに問題がある人はいないので、何かがオフになっている必要があります。

答えて

0

誤ったURLと誤ったURLを慎重に比較しました。プロトコルにはhttpsが指定されていますが、ポート80も指定されています。私のapacheのリバースプロキシヘッダーが正しく構成されていないことがわかります。

RequestHeader set X-Forwarded-Proto 'https' 
RequestHeader set X-Forwarded-Host 'hostname' 
RequestHeader set X-Forwarded-Port '443' 
関連する問題