CakePHP Auth.redirect没有被写入

时间:2012-05-29 23:36:13

标签: php cakephp cakephp-2.1

我已经遵循了cakephp文档中的身份验证教程,并创建了一个有效的登录系统。

我要做的一件事是让用户在完成登录后重定向到最初未登录时尝试访问的操作。

我相信他们访问的页面应该由Auth组件中的启动函数写入会话中的Auth.redirect,但这似乎不起作用。

在我的用户控制器中,我已将以下内容添加到beforefilter:

$this->Auth->allow('add', 'login');

因此,在尝试访问编辑操作时,我会自动重定向到登录操作。

在登录操作中,我已经包含:

debug($this->Session->read());
debug($this->referer());

这是输出会话信息,在此会话中没有提到Auth.redirect,因此Auth功能或我自己都无法使用它来重定向用户。

我尝试过使用$ this-> referer但由于某种原因,当auth函数自动重定向时,也没有跟踪引用者。

有没有人知道auth.redirect可能没有被写入的原因以及为什么在auth函数重定向时没有填充$ this-> referer?

我必须注意我在使用WAMP的Windows机器上。但是,我的添加操作会在成功和调试后重定向到登录($ this-> referer());发生这种情况时,请选择重定向网址,以便标题必须正常工作。

进一步说明:

我通过查看存储在数据库中的会话确定了CakePHP的问题。

似乎auth.redirect存储在会话中,但是由于某种原因,当用户被重定向时清除以前的数据时会生成一个新会话。

有没有阻止CakePHP为用户创建新的会话ID?

1 个答案:

答案 0 :(得分:0)

我已经确定了auth.redirect无法正常工作的问题。

我在core.php中设置了一个自定义会话cookie名称,由于某种原因,会话组件不能使用自定义cookie名称,因此会在每个页面上创建一个新会话。

如果您遇到会话问题而且您有自定义会话Cookie名称,请将其重置为默认值,然后才能生效。

我将把它作为一个错误提交给CakePHP。

进一步注意

我发现问题是因为a而发生的。在cookie名称中,没有这个。自定义cookie名称按预期执行。