Yii facebook登录按钮和检查会话

时间:2012-08-30 15:43:29

标签: facebook yii yii-extensions

我正在尝试使用Yii扩展程序yii-facebook-opengraph登录。 我没有问题地安装登录小部件。

我有两个问题:

  • 第一:登录后弹出关闭。我不知道如何重定向到loged 在页面中(弹出窗口关闭并保持在同一页面中)。我想在会话中保存userId。

RESOLVE : 编辑:SFacebook.php方法initJs。

        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
    
        }
    

0 个答案:

没有答案