Yii facebook登录按钮和检查会话
我正在尝试使用Yii扩展Yii facebook opengraph登录。 我安装登录小部件时没有问题 我有两个问题:Yii facebook登录按钮和检查会话,facebook,yii,yii-extensions,Facebook,Yii,Yii Extensions,我正在尝试使用Yii扩展Yii facebook opengraph登录。 我安装登录小部件时没有问题 我有两个问题: 第一:登录后弹出关闭。我不知道如何重定向到loged 在页面中(弹出窗口关闭并保持在同一页面中)。我想在会话中保存用户ID 解决: 编辑:SFacebook.php方法initJs if ($this->async) { $init = "window.fbAsyncInit = function(){{$init};
- 第一:登录后弹出关闭。我不知道如何重定向到loged 在页面中(弹出窗口关闭并保持在同一页面中)。我想在会话中保存用户ID
if ($this->async) {
$init = "window.fbAsyncInit = function(){{$init};
// whenever the user logs in, we tell our login service
FB.Event.subscribe('auth.login', function() {
window.location = ' " . Yii::app()->baseUrl."xxxREDIRECT-URLxxx". "';
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = '{$script}';
d.getElementsByTagName('head')[0].appendChild(js);
}(document));";
}
- 第二:在页面内,我调用了facebook api。如果用户关闭
facebook会话,当我尝试调用facebook api时,出现了一个错误,
因此,我认为在每个页面上检查用户是否登录,在 这样:try{ $userId = Yii::app()->session['userId']; if (($userId=="") || ($userId==0)){ try{ $user = Yii::app()->facebook->api('/me'); Yii::app()->session['userId'] = $user['id']; Yii::app()->session['userName'] = $user['name']; return true; }catch (Exception $e) { $this->redirect(array('Admin/Index')); //LOGIN PAGE } }else{ return true; } }catch (Exception $e) { $this->redirect(array('Admin/Index')); //LOGIN PAGE }