2011-08-31 117 views
0

嗨我使用cakephp身份驗證組件登錄系統,我想每次用戶登錄時將其重定向到用戶頁面,但是當會話超時並且用戶再次登錄時,他將被重定向到上一頁,而不是回到用戶頁面。我希望你能理解我。他是我的代碼。cakephp登錄重定向問題?

應用控制器:

function beforeFilter() { 
    $this->Auth->loginAction = array('admin' => false, 'controller' => 'users', 'action' => 'login'); 

    $this->Auth->loginRedirect = array('admin' => false, 'controller' => 'books', 'action' => 'index'); 

    $this->Auth->allow('display'); 
} 

用戶控制器:

function login() { 
      } 

    function admin_logout() { 
     $this->Session->destroy(); 
     $this->redirect($this->Auth->logout()); 

    } 
+0

爲什麼你想將用戶重定向出來他是在頁面的?如果他在你的網站上做了一些事情,並且他的會話超時並刷新,那麼如果他拿起他離開的地方,他的用戶體驗會更好。 – 8vius

+0

我知道,這沒有意義,但我想這樣做。 – user147

回答

2

在beforeFilter在用戶控制器上添加$this->Auth->autoRedirect = false;

function login() { 
    if($this->Auth->user())$this->redirect(array('controller' => 'books', 'action' => 'index')); 
} 
+0

嗨,TNX我會試試這個。 – user147

+0

Tnx,這個東西適合我。 – user147

0

這是怎樣的一個棘手的一個,因爲我覺得會話組件不會讓你做什麼是你想要除非你修改它,你可以做的是在你的應用程序中打開config/core.php並修改你的Security.level和Session.timeout變量爲更長的時間,安全級別作爲超時變量的乘數,如果乘數爲10 ,如果它是中等的,則爲100,如果是低的,則爲300.

+0

嗨,謝謝你的回覆。我不知道如何改變安全級別幫助我,但我會嘗試。 – user147

+0

您可以延長這段時間,以便會話不會過快,因爲做你想做的事情並不是很微不足道,因爲你必須修改Cake處理會話的方式 – 8vius

+0

是的,我知道,問題只是在主頁上重定向當會話超時 – user147