我知道有很多关于这个问题的问题,因为他们没有帮助我,我会问新的问题。
让我告诉你我是如何尝试整合的。我的控制器中有两个动作 actionIndex 和 actionDone 。
在第一个操作中,我尝试对用户进行身份验证(如果已经过身份验证,我会抓取用户信息并将其保存到我的数据库中),在第二个操作中,我只包含hybrid index.php(以处理hybridauth)。
我要说的最有趣的事情是这完全适用于localhost ,但不适用于实时服务器
真的很烦人,浪费了很多时间。 这是两个动作的代码:
$ha = $this->_getHA(); //i'm just bring files here
$adapter = $ha->authenticate('facebook');
if ($adapter->isUserConnected()) {
// get user profile
$profile = $adapter->getUserProfile();
/*
* If user has authenticated already
*/
$social_id = (int) $profile->identifier;
....
}
}
第二幕:
public function actionDone() {
$path = Yii::getPathOfAlias("ext.hybridauth.index") . '.php';
require $path;
}
注意:我确定我的base_url是正确的。
感谢您提前帮助。
答案 0 :(得分:0)
我也多次遇到同样的问题。您的服务器基本路径未正确配置。你只需检查这个变量
$path = Yii::getPathOfAlias("ext.hybridauth.index") . '.php';
尝试通过这种方式改变它可能有所帮助
$path = Yii::getPathOfAlias("ext.hybridauth") .'/index.php';
答案 1 :(得分:0)
在控制器中,您可以获取Hybrid_Auth对象:
$ha = Yii::app()->getModule('hybridauth')->getHybridAuth();
$facebook = $ha->getAdapter('facebook');
$facebook->setUserStatus('Hi');