15

PHP Yii アプリケーションを AWS Elastic Beanstalk でホストしているため、データベースを使用してセッションを保存しています。共有ホスティング環境で Hybridauth を使用して Facebook ログインを正常に実装しました。Elastic Beanstalk facebook ログインでホストすると、次のエラーが表示されます。

"You cannot access this page directly"

URL は次のようになります。

http://mydomain.com/hybridauth/default/callback?hauth.start=Facebook&hauth.time=1393106016

ここから、これは Facebook がアプリケーションにコールバックしたが、別のセッションを見つけたことに関連していることを学びました。次に、Endpoint.php が次のエラーをスローします。

            # Init Hybrid_Auth
        try {
            // Check if Hybrid_Auth session already exist
            if ( ! isset( $_SESSION["HA::CONFIG"] ) ) { 
                header( "HTTP/1.0 404 Not Found" );
                die( "You cannot access this page directly." );
            }

Facebook が同じセッションにコールバックし、hybridauth で正常にサインインできるようにするにはどうすればよいですか?

4

9 に答える 9

3

Facebook アプリケーションのリダイレクト URL を確認してください。Facebook では、複数のリダイレクト URL を許可していません。そのため、ホスティング/ドメイン/アドレスを変更するたびに、Facebook アプリケーションのリダイレクト URL を再構成するか、別の資格情報セットを使用する必要があります。

また、リダイレクト URL は次のようにする必要があります: http://mydomain.com/hybridauth/?hauth.done=Facebook

于 2014-03-03T19:04:32.153 に答える
2

これは私にとってもうまくいきました:

"base_url" => " https://example.com/inc/hybridauth/ ",

に変更しました

"base_url" => "https://".$_SERVER['HTTP_HOST']."/inc/hybridauth/",

于 2015-03-16T13:39:30.553 に答える
1

他の回答によると、これはセッションの問題だと思います。おそらく、セッションが間違ったドメインで開始され、他のドメインで再取得できません。

これを解決するには、開発中の Apache 構成からさまざまな ServerAlias 設定を削除しました。

これがエラーを「引き起こした」:

ServerName mydomain.com.au.localhost
ServerAlias www.mydomain.com.au.localhost
ServerAlias localhost.mydomain.com.au        # << using this one

これによりエラーが修正されました:

#ServerName mydomain.com.au.localhost
#ServerAlias www.mydomain.com.au.localhost
ServerName localhost.mydomain.com.au        # << using this one

apachectl restart

(通常は mydomain.com.au.localhost を使用するので、後で使用するために残しておきます。)

于 2016-06-16T01:18:50.400 に答える
1

私にとっては、メインドメインでは機能しましたが、サブドメインでは機能しませんでした. エラーの原因となったのはconfig.phpのbase_urlであることがわかりました。

それ以外の

"base_url" => "https://mydomain.com/inc/hybridauth/",

に変更しました

"base_url" => "https://".$_SERVER['HTTP_HOST']."/inc/hybridauth/",

どこに置いても機能するようになりました。

于 2014-09-14T06:43:35.433 に答える
0

解決できないと思われるこの問題を見つけました。私はあきらめていました。そのとき、私の本能がテストを行い、すべてが機能するようになりました。

同じ問題を抱えている人に質問があります: API を呼び出すファイルは同じディレクトリにありますか?

config.php ファイルと同じフォルダーにファイルを配置し  た場合にのみ機能しました。そこで試してみて、うまくいくかどうか教えてください!

抱擁と挨拶をみんなに!

于 2016-05-26T21:36:11.463 に答える