如何使用CakePHP 2.2对用户进行身份验证?
我已经阅读了核心库的文档 ,而且还不清楚如何使用它。它似乎假设了很多先验知识 具体而言: 您可以使用$this->Auth->authenticate配置身份验证处理程序。 您可以为身份验证配置一个或多个处理程序。使用 多个处理程序允许您支持不同的日志记录方式 中的用户。用户登录时,会检查身份验证处理程序 按照它们被宣布的顺序。一旦一个处理程序能够识别 对于用户,将不检查其他处理程序。相反,你可以停下来 通过引发异常进行所有身份验证。你需要抓紧时间 任何抛出的异常,并根据需要处理它们 您可以在控制器的 在$components数组中,在筛选之前或之后。您可以通过配置 使用数组将信息导入每个身份验证对象: 因此,在我的如何使用CakePHP 2.2对用户进行身份验证?,php,authentication,cakephp-2.2,Php,Authentication,Cakephp 2.2,我已经阅读了核心库的文档 ,而且还不清楚如何使用它。它似乎假设了很多先验知识 具体而言: 您可以使用$this->Auth->authenticate配置身份验证处理程序。 您可以为身份验证配置一个或多个处理程序。使用 多个处理程序允许您支持不同的日志记录方式 中的用户。用户登录时,会检查身份验证处理程序 按照它们被宣布的顺序。一旦一个处理程序能够识别 对于用户,将不检查其他处理程序。相反,你可以停下来 通过引发异常进行所有身份验证。你需要抓紧时间 任何抛出的异常,并根据需要处理它们 您可以在控
PeopleController
中,我在示例代码中写道:
<?php
class PeopleController extends AppController {
public $helpers = array('Html', 'Form');
$this->Auth->authenticate = array(
AuthComponent::ALL => array('userModel' => 'Member'),
'Form',
'Basic'
);
public function index() {
}
}
如果我没有错,您应该在beforeFilter()中执行此操作。
而且,正如Martin已经提到的,$this
只能在(对象)方法中使用,因为$this
指调用该方法的当前对象。在类定义中不能有实例引用
$this
只能在类方法中访问
在控制器中(比如AppController.php):
public function beforeFilter(){
parent::beforeFilter();
$this->Auth->authenticate = array(
AuthComponent::ALL => array('userModel' => 'Member'),
'Form',
'Basic'
);
}
public $components = array(
'Auth' => array(
'loginAction' => 'login',
'loginRedirect' => 'home',
'authenticate' => array(
'Form' => array(
'userModel' => 'User',
'fields' => array( 'password' => 'password' ),
'scope' => array( 'User.active' => true )
)
)
)
);