私は自分のウェブサイトへのログインにFacebook ログイン ダイアログを使用していますが ( PHP SDKを使用)、新しいユーザーが最初にアプリを承認すると常に失敗し、2 回目には成功します。
ユーザーがアプリを承認した後、リダイレクト URLでstate
パラメーターが返されないことがわかりました。これにより、アプリ ( getCode()
SDK) で CSRF チェックが失敗します。価値があるのは、code
パラメーターが含まれていることです。
ただし、ダイアログ リンクを 2 回たどると、期待どおりに機能します。それ以上の認証クリックは必要なく、リダイレクト URL はstate
とcode
パラメータの両方で正しいものです。
だから私の質問は:
state
承認後にリダイレクトから欠落している原因を特定するにはどうすればよいですか?
参考までに、私のダイアログ リンクは次のようになります。
https://www.facebook.com/dialog/oauth?client_id=MY_CLIENT_ID&redirect_uri=http%3A%2F%2Fwww.mysite.com%2Fconnect&state=4f246904818d682a742c59cbbced829c&scope=email%2Cuser_likes