CakePHP Auth $ this-> Auth-> allow('display')

时间:2012-09-19 10:26:58

标签: php cakephp authentication

我在我的应用中向未经过身份验证的用户显示静态页面时遇到问题。

我正在使用cake 2.1而我的AppController.php是这样的:

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

class AppController extends Controller {
    public $components = array(
        'Session',
        'Auth' => array(
            'loginRedirect' => array('controller' => 'users', 'action' => 'index'),
            'logoutRedirect' => array('controller' => 'users', 'action' => 'login')
        )
    );

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

请帮帮我。谢谢!

3 个答案:

答案 0 :(得分:1)

即将结束,但display操作不属于AppController。它属于PagesController而已。

尝试将此逻辑添加到PagesController下的app/Controllers/PagesController.php。这应该可以解决问题。

答案 1 :(得分:1)

您需要在PagesController中执行此操作

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

至少它对我有用。希望它可以帮助别人。

答案 2 :(得分:0)

Appcontroller.php

class AppController extends Controller {

...
  public function beforeFilter() {
    $this->Auth->allow('index', 'view');
    $this->set('loggedUser', $this->Auth->user());

    $this->loadModel('Evento');
    $this->set('eventos', $this->Evento->find('all'));
  }

}

PagesController.php

class PagesController extends AppController {

public function beforeFilter() {
    parent::beforeFilter();
    // Allow users to register and logout.
    $this->Auth->allow('display');
}
 ...