"您无法直接访问此页面" - Hybrid Auth

goo*_*ose 15 php yii amazon-web-services hybridauth amazon-elastic-beanstalk

我在AWS Elastic Beanstalk上托管我的PHP Yii应用程序,因此使用数据库来存储会话.我已经在共享托管环境中使用Hybridauth成功实现了facebook登录.当我在Elastic Beanstalk上登录facebook登录时会出错:

"You cannot access this page directly"
Run Code Online (Sandbox Code Playgroud)

该URL最终为:

http://mydomain.com/hybridauth/default/callback?hauth.start=Facebook&hauth.time=1393106016
Run Code Online (Sandbox Code Playgroud)

我从这里了解到,这与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." );
            }
Run Code Online (Sandbox Code Playgroud)

如何确保Facebook回拨同一会话并成功登录hybridauth?

Sam*_*der 5

它由于PHP SESSION名称如果您在Yii的配置文件中有更改会话名称.然后你必须在functoin的开头使用add session_name('samar_v4');in fileprotected/modules/user/vendors/hybridauth/Hybrid/Endpoint.phpauthInit


小智 3

检查您的 Facebook 应用程序的重定向 URL。Facebook 不允许多个重定向 URL。因此,每次更改托管/域名/地址时,您都必须重新配置 Facebook 应用程序的重定向 URL 或使用一组不同的凭据。

另外,您的重定向 URL 应该是这样的:http://mydomain.com/hybridauth/ ?hauth.done=Facebook