2011-08-31 134 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