【问题标题】:CakeDC Users Plugin: Disable/Override Username ValidationCakeDC 用户插件:禁用/覆盖用户名验证
【发布时间】:2024-04-28 02:20:01
【问题描述】:

如何配置 CakeDC 的用户插件以覆盖/禁用 用户名 字段?

我已将插件重新配置为使用“电子邮件”字段作为登录用户名 - 它非常适合登录 - 但我不再需要在注册时验证用户名字段。

有什么想法吗?谢谢!

使用 CakePHP 3.1 和 CakeDC 用户插件 3.1.3

【问题讨论】:

    标签: plugins cakedc cakephp-3.1


    【解决方案1】:

    您可以在文档https://github.com/CakeDC/users/blob/3.1.x/Docs/Documentation/Extending-the-Plugin.md#extending-the-model-tableentity 中的此页面之后覆盖用户表并配置自己的验证规则等

    完成新表后,不要忘记使用参数将新表配置传递给用户插件配置

    'Users.table' => 'MyUsers',
    

    插件在构建时考虑了扩展。您应该能够扩展/覆盖项目中的任何功能。

    如果您发现我们可以改进的地方,请随时在此处https://github.com/CakeDC/users/issues 开票。

    谢谢,

    【讨论】:

    • 谢谢!我还必须扩展控制器吗?还是仅扩展模型就足够了?我尝试了所有控制器(包括修改到新控制器的路由),所有工作(登录,配置文件,注册),但 LOGOUT 操作的路由失败......用户已注销,但被重定向到“用户/应用程序- users/login”(AppUsers 是我的表模型),并且这个 url 不存在......有什么想法吗?
    • 好的,解决了,一旦我提交了这个:) 我没有正确覆盖自定义配置 users.php 中的插件值。 ...'Auth' => [ 'loginAction' => [ 'plugin' => null, /*needs to be overrided to null*/ 'controller' => 'AppUsers', 'action' => 'login', ],...
    • 嗨,Steinkel 是否有效,或者有什么方法可以使用户名不被网络或社交网络用于 longin ..?我的想法是模型中没有用户名,因为我通过电子邮件和密码识别。
    • 您可以保留用户名并让社交登录在内部管理它,然后在您的应用程序中只使用电子邮件。如果您需要不同的用例,请在 github 中提交工单,但至少在内部拥有用户名可以帮助您,例如当用户更新他们的电子邮件时。