2016-03-30 5 views
0

Facebook SDKを使用してアプリケーションにログインしているときにエラーが発生しました。Facebookのログインエラーです。 URLとセッションの「状態」パラメータが一致しません

エラー: "クロスサイトリクエスト偽造の検証に失敗しました。"状態 "URLとセッションのparamが一致しません"。

それが実行session_start()を欠落しているか、または約2倍ではありませんgetLoginUrl()など、私はちょうどテストを実施し、鉱山.htaccessが問題であることが判明

.htaccessがサーバー上にある場合、FBログインによってエラーが返されます。 .htaccessがなければうまく動作します。

Options -Indexes 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

ここで何が間違っていますか?

答えて

0

あなたのユーザーを連れてwwwのバージョンのサイトに戻す必要があるのはこのためです。 mypage.comだけを使用している場合、あなたのFacebookへのログインを確認するためには常にwww.mypage.comを使用する必要があります。 SDK Facebookのドキュメントの例として提供されている$ loginUrlを使用する部分では、ユーザーにリダイレクトして同じページに戻す必要があります。

あなたのURLにmyexample.com/logincallback.phpを入れて、www.myexample.com/logincallback.phpのバージョンでユーザーを連れて来たら、トークンを作るためにfacebookの検証を完了することは決してありません。私は例を示します:あなたはこのコードを終了すると

$helper = $fb->getRedirectLoginHelper(); 
    $permissions = ['email']; 
    $loginUrl = $helper->getLoginUrl('www.mywebsite.com/logincallback.php', $permissions); 

は、あなたがdevelopers.facebook.comで、設定アプリに移動し、[設定]にあなたのウェブサイトのWWWのバージョンを設定する必要があります]> [詳細]> [許可を取り消すコールバックURL

をこの分野では

、あなたが許可を取り消すコールバックURLに同じURLを使用するようにしてください、あなたのサイトのWWWのバージョンにページをリダイレクトするために、あなたgetLoginUrlにhtaccessファイルを使用している場合は、だから、http://www.mywebsite.com/logincallback.php

を書きます()

挨拶。

0

挿入このコード

$_SESSION['FBRLH_state']=$_GET['state']; 

$helper = $fb->getRedirectLoginHelper(); 
+0

私が「グラフがエラーを返しました:この認証コードは使用されました」と表示されます。代わりに。 – ynef

関連する問題