如何在cakephp和cakedc用户插件中使用电子邮件而不是用户名

时间:2015-10-21 08:12:28

标签: cakephp cakedc

我正在使用cakedc插件。它使用用户名和密码进行用户登录,我想用电子邮件而不是用户名登录。我不希望用户名存在或存储在数据库中。任何人都可以帮助我,我该怎么办?

P.S。使用供应商目录中的composer安装的插件

1 个答案:

答案 0 :(得分:0)

更改Auth.authenticate.Form.fields配置,让AuthComponent使用电子邮件而不是用户标识的用户名。在加载CakeDC / Users插件后,将此行添加到bootstrap.php文件中

Configure::write('Auth.authenticate.Form.fields.username', 'email');

重写login.ctp模板,将Form->控件更改为“email”。将文件login.ctp添加(或从https://github.com/CakeDC/users/blob/master/src/Template/Users/login.ctp复制)到路径/src/Template/Plugin/CakeDC/Users/Users/login.ctp并确保其具有以下内容

    // ... inside the Form
    <?= $this->Form->control('email', ['required' => true]) ?>
    <?= $this->Form->control('password', ['required' => true]) ?>
    // ... rest of your login.ctp code

我们在https://github.com/CakeDC/users/blob/master/Docs/Documentation/Configuration.md#using-the-users-email-to-login

添加了具体说明