首先,添加几个空的自定义身份验证对象。我们将重用 FormAuthenticate 使用的相同逻辑(即使用 POST 数据检查用户的数据库),但只需更改对象设置中的模型(稍后)。
应用程序/控制器/组件/Auth/ModelOneAuthenticate.php
<?php
App::uses('FormAuthenticate', 'Controller/Component/Auth');
class ModelOneAuthenticate extends FormAuthenticate {
}
应用程序/控制器/组件/Auth/ModelTwoAuthenticate.php
<?php
App::uses('FormAuthenticate', 'Controller/Component/Auth');
class ModelTwoAuthenticate extends FormAuthenticate {
}
然后告诉您的应用程序使用这些对象进行身份验证,并告诉它要使用什么模型。您还可以在此处自定义字段。在您的应用程序控制器中:
public $components = array(
'Auth' => array(
'authenticate' => array(
'ModelOne' => array(
'userModel' => 'ModelOne',
'fields' => array(
'username' => 'my_custom_username_field',
'password' => 'some_password_field'
)
),
'ModelTwo' => array(
'userModel' => 'ModelTwo'
)
)
)
);
第一个身份验证对象将检查model_ones
用户名表my_custom_username_field
和密码在some_password_field
,而第二个会检查model_twos
使用标准username
and password
fields.