cakePHP卡在Auth的日志页面上

时间:2011-12-13 22:58:19

标签: php cakephp authentication cakephp-1.3

我这里有问题。我使用cakePHP的Bake功能创建了一个cakePHP应用程序。我烘焙了我的模型,我的控制器和我的视图(使用默认索引,添加,编辑和查看操作)。我在我的数据库中创建了一个名为users的小表,它只包含三个字段(id int auto_increment primary key,username varchar(15),password charr(40))。我遇到的问题是,当我使用Auth组件时,我会永远陷入日志记录页面(直到我把它拿出来)。我在我的函数login()和beforeFilter()中尝试了几乎所有的一切,但都没有成功。好吗?

我在用户控制器中使用Auth组件:

var $components = array('Auth');

我在我的函数beforeFilter()中尝试了这个,但它不起作用:

function beforeFilter() {
    $this->Auth->autoRedirect = false;
    parent::beforeFilter();
}

我甚至尝试在我的函数login()中重定向,如下所示:

function login() {
    $this->redirect($this->Auth->redirect());
}

但是当我这样做时,我得到错误310:太多的重定向。

我无法转到我的索引,或添加或查看页面。请帮忙吗?

2 个答案:

答案 0 :(得分:2)

在您提供的代码中,如果您尚未登录,则似乎无法执行任何操作以使“登录”操作可以访问。

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

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

如果您不这样做,登录页面将受到保护,您将重定向到...登录页面,使您重定向到...登录页面,使您重定向到...登录页面,让你重定向到...登录页面; - )

答案 1 :(得分:0)

这段代码让你陷入了无休止的循环,因为它会一直将你重定向到登录页面:

function login() {
    $this->redirect($this->Auth->redirect());
}

Read up here on list of Auth component variables。特别是loginRedirect部分。你需要将它放入你的beforeFilter函数中:

function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'index');
}