3

我试图表演

$this->Auth->allow()但是,beforeFilter()我需要将整个控制器添加为例外,即它需要公开并且不需要用户登录。

只是一种快捷的执行方式$this->Auth->allow( every-function-in-this-controller )

答案?

编辑:

我有这个:

<?php

App::uses('AppController','Controller');

class AllzonesController extends AppController {

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

    public function index() {
        $this->layout = 'main';
        $this->set('Hello',"Hello world");
    }
}

它正在传输 Auth-login()

4

2 回答 2

8

你提出的是你想做的适当的方式

public function beforeFilter() {
    $this->Auth->allow();
}

阅读API 文档

获取当前控制器中不需要身份验证的操作列表,或者没有参数来允许所有操作。

因此,没有参数的函数应该允许普通用户(未登录)访问该控制器的每个操作。

编辑 :

抱歉,错过了您标签中的版本参考。在这里它说

 $this->Auth->allow('*');

是 Cake 2.0 的合适方式(和以前的版本,如 @mark 所述)

于 2013-07-03T17:46:49.193 回答
3

对于 CakePHP 2.1 以后的版本

$this->Auth->allow() 代替$this->Auth->allow('*')

我的另一个问题__beforeFiter是不是一个神奇的功能!

<?php

App::uses('AppController','Controller');

class AllzonesController extends AppController {

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

    public function index() {
        $this->layout = 'main';
        $this->set('Hello',"Hello world");
    }
}
于 2013-07-03T18:04:13.803 回答