【问题标题】:How to prevent users to create account with an email that is already taken in Drupal 8 ?如何防止用户使用已在 Drupal 8 中使用的电子邮件创建帐户?
【发布时间】:2017-04-22 11:14:21
【问题描述】:

我不明白为什么,但是 Drupal 8 核心注册表单允许使用已被占用的电子邮件地址创建一个新帐户!

如何防止这种情况发生?

【问题讨论】:

    标签: drupal-8


    【解决方案1】:

    我已经在我的 Drupal 8 安装中检查过这个问题,但我找不到这个问题。

    但如果您遇到此问题,请在用户注册表单中通过 hook_form_alter 创建自定义表单验证。

    function YOURMODULENAME_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id){
    
     if($form_id == 'user_register_form'){
       $form['#validate'][] = 'my_custom_validate';
     }
    
    }
    
    $form['#validate'][] = 'my_custom_validate';
    

    并通过user_load_by_mail函数检查该用户邮箱是否存在于数据库中

    如果用户存在,则设置表单错误“电子邮件地址已被占用。”

    希望对你有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 2020-06-10
      • 2013-06-10
      • 1970-01-01
      • 2016-08-27
      • 1970-01-01
      • 2019-02-13
      相关资源
      最近更新 更多