fosuserbundle 在创建用户时设置确认令牌
fosuserbundle set confirmation token on create user
当我使用 fosuserbundle 在我自己的控制器上创建用户时,我的用户没有确认令牌(在数据库中)。我怎样才能创建这个?
$userManager = $this->get('fos_user.user_manager');
$userCreate = $userManager->createUser();
$userCreate->setUsername($user->getUsername());
$userCreate->setEmail($user->getEmail());
$userCreate->setEmailCanonical($user->getEmail());
$userCreate->setPlainPassword($user->getPassword());
$userCreate->setEnabled(true);
$userManager->updateUser($userCreate, true);
正常吗?
确认令牌是使用事件REGISTRATION_SUCCESS创建的,派发此事件时,事件侦听器应提供令牌并发送电子邮件以允许创建的用户确认其地址,
在你的情况下,你的 fosUser 的电子邮件配置应该被配置。结束然后确认令牌和电子邮件将起作用。
/**
* @param FormEvent $event
*/
public function onRegistrationSuccess(FormEvent $event)
{
/** @var $user \FOS\UserBundle\Model\UserInterface */
$user = $event->getForm()->getData();
$user->setEnabled(false);
if (null === $user->getConfirmationToken()) {
$user->setConfirmationToken($this->tokenGenerator->generateToken());
}
$this->mailer->sendConfirmationEmailMessage($user);
$this->session->set('fos_user_send_confirmation_email/email', $user->getEmail());
$url = $this->router->generate('fos_user_registration_check_email');
$event->setResponse(new RedirectResponse($url));
}
当我使用 fosuserbundle 在我自己的控制器上创建用户时,我的用户没有确认令牌(在数据库中)。我怎样才能创建这个?
$userManager = $this->get('fos_user.user_manager');
$userCreate = $userManager->createUser();
$userCreate->setUsername($user->getUsername());
$userCreate->setEmail($user->getEmail());
$userCreate->setEmailCanonical($user->getEmail());
$userCreate->setPlainPassword($user->getPassword());
$userCreate->setEnabled(true);
$userManager->updateUser($userCreate, true);
正常吗?
确认令牌是使用事件REGISTRATION_SUCCESS创建的,派发此事件时,事件侦听器应提供令牌并发送电子邮件以允许创建的用户确认其地址,
在你的情况下,你的 fosUser 的电子邮件配置应该被配置。结束然后确认令牌和电子邮件将起作用。
/**
* @param FormEvent $event
*/
public function onRegistrationSuccess(FormEvent $event)
{
/** @var $user \FOS\UserBundle\Model\UserInterface */
$user = $event->getForm()->getData();
$user->setEnabled(false);
if (null === $user->getConfirmationToken()) {
$user->setConfirmationToken($this->tokenGenerator->generateToken());
}
$this->mailer->sendConfirmationEmailMessage($user);
$this->session->set('fos_user_send_confirmation_email/email', $user->getEmail());
$url = $this->router->generate('fos_user_registration_check_email');
$event->setResponse(new RedirectResponse($url));
}