有行动/页,而无需登录

我建立使用CakePHP的应用程序。 我们有一个方法,我们可以让公共用户访问某些网页无需登录。将会有关于整个组织或与我们联系页几页,如我们。 有没有一种方法来避免登录访问,类似于我们怎么有办法添加组件或设置布局的东西。

--------------解决方案-------------

正如马丁·比恩说,你可以使用访问控制列表。 对于一个复杂的网站,这将是我的选择。 你不必须先登录才能访问公共页面。 http://multiheadweighers.co.uk是使用的ACL的站点的一个例子。 有一个全功能的CMS背后的公共页面。

对于一个简单的网站,我会允许访问,例如,在视图操作使用

function beforeFilter() {
parent::beforeFilter;
$this->Auth->allow('view');
}

见:http://book.cakephp.org/view/1257/allow

这真的不是什么大不了的 - 尝试一下,你会发现它是多么容易。

编辑:

从书@ http://book.cakephp.org/view/1550/Setting-up-permissions

现在,我们要拿出引用Auth-> allowedActions在你的用户和组控制器。 然后添加以下到您的文章和部件控制器:

function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allowedActions = array('index', 'view');
}

这消除了“断开关”我们把前面的用户和组控制器,并提供了有关指标的公共访问和查看职位和部件控制器的动作。 在AppController的:: beforeFilter()添加以下内容:

$this->Auth->allowedActions = array('display');

这使得“显示”行动公众。 这将让我们的PagesController ::显示()公开。 这是重要的,因为常常默认路由具有此操作作为你的应用程序的主页。

编辑2:

$user = ($this->Auth->user())?$this->Auth->user():'Anonymous';
if(!$this->Acl->check($user,"{$url}"))
$this->redirect($this->referer()); // or whatever action you want to take.

http://book.cakephp.org/view/641/Simple-Acl-controlled-Application都要通过实施认证,并且也解决的课题让某些控制器/动作被公开访问,同时保持所需的其他身份验证。

该解决方案是使用让方法的验证组件,让用户访问这些页面。

谢谢!

分类:php 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.156 (s). 10 q(s)