2012-04-17 40 views
3

我使用webtechnick的CakePHP-Facebook-Plugin(https://github.com/webtechnick/CakePHP-Facebook-Plugin/),并且我正在识别用户是否已经登录Facebook的一些麻烦。问题是:我登录Facebook,然后打开我的网站(localhost.localdomain),我没有登录。然后我刷新我的网页,我登录。 以上是我使用的代码。我已经测试过了,在第一次请求中,$ this-> Connect-> user()调用返回false(第一个和第二个),然后页面呈现,我认为一些魔术是由init或者FacebookHelper->登录方法,因为如果我没有重定向的话,它说我在线并使用我的网站;与重定向设置,它显示标签和我登录的第二个请求。Webtechnick CakePHP-Facebook-Plugin必须要求两次认证登录的用户

我试着初始化FacebookHelper并在beforeFilter上调用“login”,但没有成功(有和没有重定向)。

此外,显示Facebook的登录或注销按钮的逻辑在beforeFilter中进一步完成,根据$ this-> Session-> check('Auth.User.id')的值定义特定的布局。

27  public function beforeFilter() { 
28 
29   try { 
30    $user = $this->Auth->user(); 
31    $fb_user = $this->Connect->user(); 
32   } catch (FacebookApiException $e) { 
33   } 
34   Configure::write('VertWeb.show_tabs', true); 
35   if ($fb_user = $this->Connect->user()) { 
36    if (!$this->Auth->loggedIn()) { 
37     if (!isset($fb_user['error_code'])) { 
38      $this->loadModel('User'); 
39      $this->User->recursive = -1; 
40      if (($user = $this->User->findByFacebookId($fb_user['id'])) || 
41       ($user = $this->User->findByEmail($fb_user['email']))) { 
42       
43       $this->Auth->login($user); 
44       $this->Session->write('Auth.FacebookUser', $fb_user); 
45       $this->Session->write('Auth.User', $user['User']); 
46       $this->Session->write('Auth.FacebookUserPicture', FB::api('/me?fields=picture')); 

亲切的问候, 丹尼尔

回答

2

我有这个问题,我解决它puting在初始化该线(和删除启动方法)

if (!$this->noAuth && !empty($this->uid)) { 
    $this->__syncFacebookUser(); 
} 
相关问题