我开发了一个自定义模块来使用业务规则模块创建用户。这很有效。
$lang = \Drupal::languageManager()->getCurrentLanguage()->getId();
$user = \Drupal\user\Entity\User::create();
// The Basics
$user->setUsername(str_replace('@','',$mail));
$user->setPassword(user_password());
$user->setEmail($mail);
$user->enforceIsNew();
$user->set("init", $mail);
$user->set("langcode", $lang);
$user->set("preferred_langcode", $lang);
$user->set("preferred_admin_langcode", $lang);
$result = $user->save();
在此之后,我将向用户发送一封电子邮件,其中包含"用户休息链接" _user_mail_notify('register_no_approval_required', $user);
当用户点击他获得的链接时,访问被拒绝"错误。
我需要在用户创建代码中更改哪些内容?
答案 0 :(得分:0)
答案 1 :(得分:0)
Drupal以一种奇怪的方式工作:"活跃"用户帐户并不意味着它已验证了电子邮件地址。电子邮件验证实际上是一种登录和设置密码的方法。如果电子邮件地址不是"有效"您无法登录,即使该帐户处于活动状态",因为您没有收到一次性登录链接。
因此,如果您以编程方式创建用户帐户,也应该激活它们。
如果用户被阻止并且他点击了电子邮件链接,则他不会变为活动状态。他得到了拒绝访问权限#34;错误。