如何从CakePHP中的页面控制器中删除auth?

bak*_*ker 7 authentication cakephp

我正在使用CakePHP的Auth组件,它在我的app_controller.php.

现在我想允许来自页面控制器的特定视图.我怎么做?

Tra*_*leu 13

将cake/libs/controllers中的pages_controller.php文件复制到app/controllers/dir.然后你可以修改它来做你想做的任何事情.使用auth组件,允许特定访问的典型方法如下:

class PagesController extends AppController {
 ...
 function beforeFilter() {
  $this->Auth->allow( 'action1', 'allowedAction2' );
 }
 ...
Run Code Online (Sandbox Code Playgroud)

我建议将文件高度复制到控制器目录,而不是在适当的位置进行编辑,因为这样可以使蛋糕升级更容易,并且不太可能意外覆盖某些内容.

  • $这个 - > Auth->允许( '*'); 也会很好. (3认同)

Law*_*nti 11

您可以将以下内容添加到app_controller中.

function beforeFilter() {
  if ($this->params['controller'] == 'pages') {
    $this->Auth->allow('*'); // or ('page1', 'page2', ..., 'pageN')
  }
}
Run Code Online (Sandbox Code Playgroud)

然后你不必复制页面控制器.


raj*_*_kw 5

我还没有尝试过其他方法,但这也是允许访问所有静态页面的正确方法,因为显示是常见操作.在app_controller中:

//for all actions    
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display'));

//for particular actions
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display', 'home'));
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display', 'aboutus'));
Run Code Online (Sandbox Code Playgroud)