使用cakephp授权facebook(需要登录)会导致循环验证密钥会话

使用cakephp授权facebook(需要登录)会导致循环验证密钥会话,facebook,cakephp,iframe,authorization,Facebook,Cakephp,Iframe,Authorization,我正在用cakephp开发facebook iframe应用程序。 我的问题是,当用户访问主页时,我需要facebook授权。 我把这个代码放在$user=$this->facebook->require_login()上;在app_控制器之前的过滤方法中,它似乎与用户授权一起工作 但在用户授权后,我的应用程序将离开facebook框架,进入正常页面(不在facebook内部),我在地址栏上看到“auth_token=f754dc2ed39b5e2b93f11a6e648f1517&instal

我正在用cakephp开发facebook iframe应用程序。 我的问题是,当用户访问主页时,我需要facebook授权。 我把这个代码放在$user=$this->facebook->require_login()上;在app_控制器之前的过滤方法中,它似乎与用户授权一起工作

但在用户授权后,我的应用程序将离开facebook框架,进入正常页面(不在facebook内部),我在地址栏上看到“auth_token=f754dc2ed39b5e2b93f11a6e648f1517&installed=1”

然后,当im单击链接到我的应用程序上的另一个页面时,auth_令牌密钥似乎在地址栏上循环

我怎样才能解决这个问题?
谢谢

您可以将回调重定向到为处理facebook授权回调而设置的特定页面,并使用该页面登录用户,然后将其重定向到网站上的适当位置(例如memebers页面)

您可以将回调重定向到为处理facebook授权回调而设置的特定页面,并使用该页面登录用户,然后将其重定向到网站上的适当位置(例如memebers页面)

您可以执行以下操作:

public function beforeFilter() {

        $this->fbsession = $this->facebook->getSession ();      
        $this->me = null;

        // Session based API call.
        if ($this->fbsession) {
            try {
                $this->uid = $this->facebook->getUser ();
                $this->me = $this->facebook->api ( '/me' );
            } catch ( FacebookApiException $e ) {
                error_log ( $e );
            }
        } else {
            $this->layout = 'login';
            $this->viewPath = 'pages';
            $this->render('login');
        }
}

如果用户没有登录到Facebook和/或您的应用程序没有访问权限,他将重定向到/views/pages/login.ctp视图。在这里,您可以输入登录代码(如sdk示例中所示)。

您可以执行以下操作:

public function beforeFilter() {

        $this->fbsession = $this->facebook->getSession ();      
        $this->me = null;

        // Session based API call.
        if ($this->fbsession) {
            try {
                $this->uid = $this->facebook->getUser ();
                $this->me = $this->facebook->api ( '/me' );
            } catch ( FacebookApiException $e ) {
                error_log ( $e );
            }
        } else {
            $this->layout = 'login';
            $this->viewPath = 'pages';
            $this->render('login');
        }
}
如果用户没有登录到Facebook和/或您的应用程序没有访问权限,他将重定向到/views/pages/login.ctp视图。这就是您将用于登录的代码放入的位置(如sdk示例中所示)