未写入CakePHP Auth.redirect
我遵循了cakephp文档中的身份验证教程,创建了一个有效的登录系统 我尝试做的一件事是,在用户完成登录后,将其重定向到最初未登录时尝试访问的操作 我相信他们访问的页面应该通过Auth组件中的启动函数写入会话中的Auth.redirect,但是这似乎不起作用 在我的用户控制器中,我已将以下内容添加到beforefilter:未写入CakePHP Auth.redirect,php,cakephp,cakephp-2.1,Php,Cakephp,Cakephp 2.1,我遵循了cakephp文档中的身份验证教程,创建了一个有效的登录系统 我尝试做的一件事是,在用户完成登录后,将其重定向到最初未登录时尝试访问的操作 我相信他们访问的页面应该通过Auth组件中的启动函数写入会话中的Auth.redirect,但是这似乎不起作用 在我的用户控制器中,我已将以下内容添加到beforefilter: $this->Auth->allow('add', 'login'); 因此,当尝试访问编辑操作时,我会自动重定向到登录操作 在登录操作中,我包括: debu
$this->Auth->allow('add', 'login');
因此,当尝试访问编辑操作时,我会自动重定向到登录操作
在登录操作中,我包括:
debug($this->Session->read());
debug($this->referer());
这是输出会话信息,在此会话中没有提到Auth.redirect,因此Auth函数或我自己都无法使用它重定向用户
我尝试过使用$this->referer,但由于某些原因,当auth函数自动重定向时,也不会跟踪referer
有人知道为什么auth.redirect可能没有被写入,以及为什么在auth函数重定向时没有填充$this->referer吗
我必须注意,我在使用WAMP的windows计算机上。但是,我的添加操作在成功并调试后重定向到登录($this->referer());当发生这种情况时,会拾取重定向URL,因此标头必须正常工作
进一步说明:
通过查看存储在数据库中的会话,我发现了CakePHP的问题
似乎auth.redirect存储在会话中,但是由于某种原因,当用户被重定向以清除以前的数据时,会生成一个新会话
还有什么方法可以阻止CakePHP为用户创建新的会话ID吗?我已经确定了auth.redirect不起作用的原因 我在core.php中设置了一个自定义会话cookie名称,由于某些原因,会话组件不能使用自定义cookie名称,因此在每个页面上创建一个新会话 如果您遇到会话问题,并且您有一个自定义会话cookie名称,请将其重置为默认值,它将正常工作 我将把它作为bug提交给CakePHP 进一步说明
我发现问题的发生是因为一个问题。在cookie名称中,不包含此项。自定义cookie名称按其应有的方式运行。是否将LoginDirect设置为null(默认情况下应为null,因此您是否修改了该设置?)此外,在重定向到login后,
env('HTTP\u REFERER')
的输出是什么action@tigrang我已尝试设置和取消设置LoginDirect,但对编写Auth.redirect没有任何影响。env('HTTP\u REFERER')显示为空。$\u SERVER
和$\u env
是否为空?看看你的php.ini或phpinfo()
,我试着用$this->set('env',$\u env('HTTP\u REFERER'))在一个旁注上的变量的值是多少;和$this->set('env',$服务器('HTTP\u REFERER');但在我试图显示它们之前,它就产生了一个未定义的索引错误。