CakePHP Spark Plug auth插件导致重定向循环

时间:2011-08-28 18:47:56

标签: cakephp plugins authentication redirect-loop

我正尝试在http://sandbox.andrewcroce.com的新CakePHP 1.3应用上使用auth插件Spark Plug。设置起来很容易,但由于某种原因,我在尝试访问除Users控制器之外的任何内容时都会遇到重定向循环错误。

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

对我而言,这提出了两个问题:如果我成功登录,为什么要将我引导到未经授权的页面?为什么它会继续重定向到iself?

我想知道这是否是配置设置我在火花塞配置中没有理解,但是在评论中没有太多关于这些设置的解释。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

我不确定Spark Plug的具体细节,但每当您激活Auth组件时,您需要确保指定允许未经过身份验证的用户执行哪些操作,否则对该操作的任何请求都将重定向到任何你的错误行动是。然后,如果您不允许错误操作,它将抛出错误,将您发送到...您猜错了,您的错误操作,一遍又一遍。

在每个控制器中,你需要在beforeFilter()方法中使用这样的东西:

function beforeFilter() {
    parent::beforeFilter();
    // Allow all actions
    $this->allow(*);
    // Only allow view and index
    $this->allow('view', 'index');
}

如果您不运行allow()方法,则表示未经过身份验证的用户无法执行任何操作。特别是,如果您将allow('unauthorized')放在ErrorsController课程中,则unauthorized操作不会在循环中重定向。

答案 1 :(得分:0)

spark_plug上有一个名为“user_group_permissions”的表,例如,如果要访问名为“posts”的控制器和操作“sortBy”(http:// localhost / posts / sortby /),则需要添加表格的权限如下:

INSERT INTO `user_group_permissions` ( `user_group_id`, `plugin`, `controller`, `action`, `allowed`) VALUES
( 3, '', 'posts', 'sortBy', 1)

对于这种特定情况,user_group_id编号3是“Guest”,换句话说,每个人都可以在控制器中访问该操作