CakePHP火花塞身份验证插件导致重定向循环

CakePHP火花塞身份验证插件导致重定向循环,cakephp,plugins,authentication,redirect-loop,Cakephp,Plugins,Authentication,Redirect Loop,我正在尝试在新的CakePHP 1.3应用程序上使用auth插件火花塞。设置起来很容易,但由于某些原因,在尝试访问除用户控制器以外的任何对象时,我会遇到重定向循环错误 该插件成功允许您注册和登录,数据库似乎写得正确。发送确认电子邮件,验证链接似乎激活了新用户。但是,除了用户控制器之外,我无法访问任何页面或控制器。结果是一个重定向循环,其中重复请求 对我来说,这引发了两个问题:如果我成功登录,为什么它试图将我指向未经授权的页面?为什么它总是重定向到我自己 我想知道这是否是我在spark plug配

我正在尝试在新的CakePHP 1.3应用程序上使用auth插件火花塞。设置起来很容易,但由于某些原因,在尝试访问除用户控制器以外的任何对象时,我会遇到重定向循环错误

该插件成功允许您注册和登录,数据库似乎写得正确。发送确认电子邮件,验证链接似乎激活了新用户。但是,除了用户控制器之外,我无法访问任何页面或控制器。结果是一个重定向循环,其中重复请求

对我来说,这引发了两个问题:如果我成功登录,为什么它试图将我指向未经授权的页面?为什么它总是重定向到我自己

我想知道这是否是我在spark plug配置中不理解的配置设置,但是在评论中没有太多关于这些设置的解释


任何帮助都将不胜感激。

我不确定火花塞的具体细节,但无论何时激活身份验证组件,都需要确保指定允许未经身份验证的用户执行哪些操作,否则任何操作请求都将重定向到您的错误操作。然后,如果您的错误操作不被允许,它将抛出一个错误,将您发送到。。。你猜到了,你的错误动作,一次又一次

在每个控制器中,您需要在beforeFilter方法中包含以下内容:

function beforeFilter() {
    parent::beforeFilter();
    // Allow all actions
    $this->allow(*);
    // Only allow view and index
    $this->allow('view', 'index');
}
INSERT INTO `user_group_permissions` ( `user_group_id`, `plugin`, `controller`, `action`, `allowed`) VALUES
( 3, '', 'posts', 'sortBy', 1)

如果不运行allow方法,则表示所有操作都不应对未经身份验证的用户可用。特别是,如果您在ErrorsController类中添加了allow'unauthorized',则未经授权的操作不会在循环中重定向。

有一个名为user\u group\u permissions on spark\u plug的表,例如,如果您想访问名为posts的控制器和sortBy操作http://localhost/posts/sortby/ 然后需要将该权限添加到表中,如下所示:

function beforeFilter() {
    parent::beforeFilter();
    // Allow all actions
    $this->allow(*);
    // Only allow view and index
    $this->allow('view', 'index');
}
INSERT INTO `user_group_permissions` ( `user_group_id`, `plugin`, `controller`, `action`, `allowed`) VALUES
( 3, '', 'posts', 'sortBy', 1)
对于这种特定情况,用户组id 3是Guest,换句话说,每个人都可以在控制器中访问该操作