如何在appcontroller中配置Auth组件

时间:2015-01-09 05:47:59

标签: php cakephp authentication authorization acl

我正在使用cakephp 2.6。

我已经按照cakephp的教程中的教程进行了操作,发现有两种方法可以在appcontroller中配置Auth组件。

第一个是:

public $components = array(
  'Acl',
  'Auth' => array('authorize' => array('Actions' => array('actionPath' => 'controllers'))),
  'Session'
);

另一个是:

public $components = array(
  'Acl',
  'Auth' => array('authorize' => 'Controller'),
  'Session'
);

所以我的问题是:它们之间有什么区别以及为什么我们应该使用授权参数?

1 个答案:

答案 0 :(得分:0)

试试这个

public $components = array(
    'Cookie',
    'Email',
    'RequestHandler',
    'Session' ,
    'Auth'=>array(
        'loginAction' => '/login',
        'loginRedirect'=> '/login', //~ where to redirect if user not login
        'logoutRedirect'=> '/logout',
        'authError'=>"You can't access this page",

        'authenticate' => array('Form',array('fields' => array('username' => 'email'),'userModel' => 'User')), //~ user email as username if login with email else use username in case of log
        'authorize'=>array('Controller')    
    ) ,
    'RequestHandler',
    'Upload'
);

将此功能放入app controller

public function isAuthorized($user) {
    if($user)
        return true;
    else
        return false;
}

您可以使用登录功能

中的以下代码登录
$this->Auth->login();