是否可以将 CakeDC 的用户插件配置为使用电子邮件字段作为用户名?
默认情况下,用户插件中同时包含用户名和电子邮件字段,一切都很好!但我想使用电子邮件作为用户名进行身份验证,这样可以简化用户注册。
我尝试通过在AppController中加载 Auth 组件来覆盖UsersAuthComponent,但登录停止工作并显示“错误的用户名或密码”。
public function initialize()
{
parent::initialize();
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'loginAction' => [
'plugin' => 'CakeDC/Users',
'controller' => 'Users',
'action' => 'login',
],
'authenticate' => [
'all' => [
'scope' => ['active' => 1]
],
'CakeDC/Users.RememberMe',
'Form' => [
'fields' => ['username' => 'email', 'password' => 'password']
]
],
'authorize' => [
'CakeDC/Users.Superuser',
'CakeDC/Users.SimpleRbac',
],
'storage' => 'Session'
]);
$this->loadComponent('CakeDC/Users.UsersAuth');
}
按照文档,我还关闭了bootstrap.php 中的UsersAuthComponent。
Configure::write('Users.auth', false);
有诀窍吗?我相信这是可能的,或者可能是一个错误?
我正在使用 CakePHP 3.1 和 CakeDC 用户插件 3.1