2017-03-25 13 views
-1

実際にyii2にfacebook sdkプラグインを使用してアクセストークンとユーザーIDを長期間保存しようとしています。しかし、私が直面している問題は、Facebookのログインボタンをクリックするとfacebookページに行き、正常にログインするということですが、ウェブサイトのURLを返すと、何らかのエラーが表示されます。クロスサイト状態のparamが見つからないか、エラーFacebookSDKExceptionyii2を使用してfacebook sdkログインにエラーが発生しました

接続がメッセージで10001ミリ秒

例外のFacebook \例外\ FacebookSDKException 'の後にタイムアウトになりました\それは私

Facebookの\の例外が表示されますよりも、'クロスサイトリクエスト偽造の検証に失敗しました。必要なパラメータ "状態" が永続データから欠落しています。 in /home/host4lev/public_html/social_post/vendor/facebook/php-sdk-v4/src/Facebook/Helpers/FacebookRedirectLoginHelper.php:244 スタックトレース: /home/host4lev/public_html/social_post/vendor/facebook//home/host4lev/public_html/social_post/frontend/controllers/SiteController.php(510)php-sdk-v4/src/Facebook/Helpers/FacebookRedirectLoginHelper.php(221): Facebook \ Helpers \ FacebookRedirectLoginHelper-> validateCsrf() : Facebookの\ヘルパー\ FacebookRedirectLoginHelper-> getAccessToken() [内部関数]: フロントエンド\コントローラ\ SiteController-> actionChecklogin() /home/host4lev/public_html/social_post/vendor/yiisoft/yii2/base/InlineAction.php (55): call_user_func_array(配列、配列) /home/host4lev/public_html/social_post/vendor/yiisoft/yii2/base/Controller.php(154): yii \ base \ InlineAction-> runWithParams(配列) /home/host4lev/public_html/social_post/vendor/yiisoft /yy2/base/Module.php(454): yii \ base \ Controller-> runAction( 'checklogin'、Array) /home/host4lev/public_html/social_post/vendor/yiisoft/yii2/web/Application.php 100): yii \ base \ Module-> runAction( 'site/checklogin'、Array) /home/host4lev/public_html/social_post/vendor/yiisoft/yii2/base/Application.php(375): yii \ web (メイン)} \ Application \> handleRequest(オブジェクト(yii \ web \ Request)) /home/host4lev/public_html/social_post/frontend/web/index.php(17): yii \ base \ Application-> run

私は解決策をたくさん試しましたが、何の効果もありませんので、それについていくつかの誇りを示してください。

このコードは完全にlocalhostで実行されていますが、ライブサーバーに行うとエラーが発生します。

答えて

0

私は私ポート80がそう、それはFacebookのの応答を受け入れたいをブロックされていることを見つけるよりも、私のcPanelの構成を確認したときに最終的に私は私のquestion.Actually問題の答えは私のコードではありませんしまりましたすべての私のために良い起こるの修正(ポート80を解除する)ときapi。あなたのすべてのsuggetionsのためにありがとうございます

0

これは、クロスドメインcsrfチェックのためです。あなたのコントローラでクロスドメインを許可する必要があります。あなたのコントローラに以下のコードを追加してください。

public function behaviors() 
{ 
    return [ 
    'corsFilter' => [ 
     'class' => \yii\filters\Cors::className(), 
    ], 
    ]; 
} 
+0

私はあなたのサイトで提案したことをしましたコントローラ。PHPは、効果は何も起こらないエラーはまだ同じ残って私にはさらに多くの提案を与えると私はまた、このエラーを解決するために私のドメインを変更しますが、それを解決しません –

関連する問題