FOSUserBundle에는 이미 필요한 모든 기능이 있습니다.
1) 요청 이메일에서 사용자를 찾을 수는
2) 이미 새 비밀번호
3) 4) 이메일 메시지
을 다시 보내는 FOSUserBundle 메일러 구현을 사용하는 사용자
에 대한 확인 토큰을 생성을 요청하지 그 현재 사용자를 확인 5) 업데이트 사용자
6) 반환 응답이 같은 것을 할 수
:
/**
* @Route("/resetpassword/{userEmail}", name="user_password_reset-request")
* @Method("GET")
*/
public function resetPasswordRequestAction(Request $request)
{
$email = $request->query->get('userEmail');
$user = $this->get('fos_user.user_manager')->findUserByEmail($email);
if (null === $user) {
throw $this->createNotFoundException();
}
if ($user->isPasswordRequestNonExpired($this->container->getParameter('fos_user.resetting.token_ttl'))) {
throw new BadRequestHttpException('Password request alerady requested');
}
if (null === $user->getConfirmationToken()) {
/** @var $tokenGenerator \FOS\UserBundle\Util\TokenGeneratorInterface */
$tokenGenerator = $this->get('fos_user.util.token_generator');
$user->setConfirmationToken($tokenGenerator->generateToken());
}
$this->get('fos_user.mailer')->sendResettingEmailMessage($user);
$user->setPasswordRequestedAt(new \DateTime());
$this->get('fos_user.user_manager')->updateUser($user);
return new Response(Response::HTTP_OK);
}
을
고유 ID를 생성해야하며이를 테이블 사용자의 "password_key"와 같은 필드에 저장하십시오. 사용자가 그것을 클릭하면 자신의 친구 (이메일, 친구, 친구 확인)를 재설정하는 양식을 표시합니다. 방법 재설정에서 전달 된 고유 ID가이 특정 사용자의 데이터베이스에 있는지 확인하십시오 – Delphine
감사합니다. – Oudstand
당신을 환영합니다;) – Delphine