2012-08-17 87 views
3

我很困惑這個pluginOauth認證facebook - cakePHP插件

只要複製粘貼的演示,但我得到的時候我試圖與Facebook連接此錯誤:

The page isn't redirecting properly 

Firefox has detected that the server is redirecting the request for this address in a way that will never complete. 

全碼:

<?php 

class ExamplesController extends AppController { 

    public $components = array(
    'Auth'=> array(
     'loginAction' => array(
     'controller' => 'examples', 
     'action'  => 'login' 
    ), 
     'loginRedirect' => array(
     'controller' => 'examples', 
     'action'  => 'my_account' 
    ), 
     'authError' => 'Did you really think you are allowed to see that?', 
     'authenticate' => array(
     'FacebookAuth.Facebook' => array(
      'fields' => array(
      'username' => 'email', 
       'password' => 'password' 
     ) 
     ) 
    ) 
    ) 
); 

    public function index() { 
    } 

    public function beforeFilter() 
    { 
    parent::beforeFilter(); 

    $this->Auth->authenticate['FacebookAuth.Facebook']['application'] = array(
     'id'  => Configure::read('facebook.app_id'), 
     'secret' => Configure::read('facebook.app_secret') 
    ); 

    $this->Auth->allowedActions = array_merge($this->Auth->allowedActions, array('login')); 
    } 

    public function login() 
    { 
    if (!$this->Auth->login()) { 
     /** 
     * Get config for Facebook redirect 
     */ 
     $clientId = Configure::read('facebook.app_id'); 
     $permissions = implode(',', Configure::read('facebook.permissions')); 
     $redirect = Router::url(false, true); 
     $csrfToken = CakeSession::read('FacebookAuthCSRF'); 

     $this->redirect(Configure::read('facebook.oauth_dialg_url') . '?client_id=' . $clientId . '&redirect_uri=' . $redirect . '&scope=' . $permissions . '&state=' . $csrfToken); 
    } else { 
     $this->redirect(array('action' => 'my_account')); 
    } 
    } 

    public function my_account() 
    { 
    var_dump($this->Auth->user()); 
    die(); 
    } 
} 

面臨的挑戰是要弄清楚如何把插件工作。


UPDATE: 好吧,我有這個URL(感謝埃利奧特):

http://someHost/?client_id=4003xx16796&redirect_uri=http://localhost/cake/users/login&scope=email&state=f96419881df77cdc689e6c43c131cf3b 

現在,什麼是應該的URL呢?下一步,基本上。我所擁有的僅僅是一個登錄按鈕,點擊後可以更改網址,就像上面的演示一樣,但不需要任何操作。答案是空的。我已閱讀this

回答

2

是問題

Configure::read('facebook.oauth_dialg_url') 

應改爲:

Configure::read('facebook.oauth_dialog_url') 

另外,還要確保你正在做相應的配置::在bootstrap.php中寫入命令

Configure::write('facebook.oauth_dialog_url', 'http://some-value.com/path/to/url');