【发布时间】:2017-11-08 15:25:16
【问题描述】:
我安装了CakeDC/users 运行迁移,创建超级用户,将 users.php 复制到 config/ 目录。
现在在我的网站中,所有页面都重定向到登录页面。而且我无法更改这件事,因为我不太了解权限的工作原理。
我的需要是允许站点上的所有页面,并仅阻止一个页面的访问以及登录用户的个人数据。
任何帮助,建议阅读,欢迎示例,非常感谢!
【问题讨论】:
标签: cakephp cakephp-3.0 cakedc
我安装了CakeDC/users 运行迁移,创建超级用户,将 users.php 复制到 config/ 目录。
现在在我的网站中,所有页面都重定向到登录页面。而且我无法更改这件事,因为我不太了解权限的工作原理。
我的需要是允许站点上的所有页面,并仅阻止一个页面的访问以及登录用户的个人数据。
任何帮助,建议阅读,欢迎示例,非常感谢!
【问题讨论】:
标签: cakephp cakephp-3.0 cakedc
您需要允许您的AppController 的beforeFilter 中的所有操作。
public function beforeFilter(Event $event)
{
$this->Auth->allow();
}
然后,您需要在具有该操作的控制器的beforeFilter 中拒绝需要身份验证的操作。
public function beforeFilter(Event $event)
{
// Where `loggedInAction` is the name of the
// action that requires authentication
$this->Auth->deny('loggedInAction');
}
【讨论】:
permissions.php 配置文件的用途,我可以从中配置我的所有权限吗?
$this->Auth->allow([..action names.]); 指定 PagesController 中允许的其余操作
也许你必须在你的控制器中为 cakephp3.x 使用这个方法:
public function initialize()
{
$this->Auth->allow('youraction'); // this action will plublic. Not under auth control.
}
希望此链接可以帮助您: https://book.cakephp.org/3.0/en/controllers.html#the-app-controller
【讨论】: