我正尝试在http://sandbox.andrewcroce.com的新CakePHP 1.3应用上使用auth插件Spark Plug。设置起来很容易,但由于某种原因,我在尝试访问除Users控制器之外的任何内容时都会遇到重定向循环错误。
该插件成功允许您注册和登录,数据库似乎正确写入。发送确认电子邮件,验证链接似乎激活新用户。但是,除了Users控制器之外,我无法访问任何页面或控制器。结果是重定向循环,其中重复请求http://sandbox.andrewcroce.com/errors/unauthorized。
对我而言,这提出了两个问题:如果我成功登录,为什么要将我引导到未经授权的页面?为什么它会继续重定向到iself?
我想知道这是否是配置设置我在火花塞配置中没有理解,但是在评论中没有太多关于这些设置的解释。
任何帮助都将不胜感激。
答案 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”,换句话说,每个人都可以在控制器中访问该操作