0

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

使用供应商目录中的作曲家安装的 PS 插件

4

1 回答 1

0

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

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

覆盖 login.ctp 模板以将 Form->control 更改为“email”。添加(或从https://github.com/CakeDC/users/blob/master/src/Template/Users/login.ctp复制)文件 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

于 2016-02-19T01:41:57.490 回答