我試圖編寫Joomla和我的CakePHP(1.3)應用程序之間的SSO。用戶應該能夠登錄到Joomla,點擊鏈接進入CakePHP應用程序並使用同一用戶登錄。Cakephp - Auth-> login()返回true,但下一頁我不再登錄
在我的users_controller中,我有一個名爲'joomlalogin()'的動作,在那裏我讀取Joomla會話變量,檢查joomla用戶是否已經存在於我的CakePHP應用程序中,如果不是,請創建用戶。這一切都有效。
問題是,我似乎無法手動登錄用戶使用Auth-> login()。我嘗試傳遞一個完整的用戶,試圖傳遞user_id。該函數返回'真',但只要我去下一頁,登錄似乎失敗了。下面的代碼的一個版本:
$existing_user= $this->User->find('first', array('conditions' => array('User.joomla_userid' => $joomla_user->id)));
if ($existing_user && $this->Auth->login($existing_user)) {
$this->Session->setFlash('You have successfully logged in.');
//debug($this->Auth);
$this->redirect('/users');
}
出現提示信息,重定向發生,但因爲「/用戶」是不允許匿名用戶就會立即被重定向到(常規的非SSO)登錄表單。
爲什麼Auth-> login()在用戶沒有真正登錄時返回'true'。當我查看Auth-> User()時,它包含正確的用戶數據,一切都表明用戶已登錄直到重定向發生。任何想法可能是這個或我做錯了什麼原因?
你有會話正確設置core.php? – bfavaretto
我已經有一個正常的用戶系統/登錄過程(SSO代碼之前),它仍然正常工作。所以會議必須按我的設想妥善設置。 – Kiluminati
你應該檢查用戶是否登錄。也許他是,但你授權去/用戶時犯了錯誤。 –