РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1239 of 1361 menu

Команда make:reset-password

Команда make:reset-password создаёт классы и шаблоны для реализации сброса пароля. Она генерирует контроллер с маршрутами для запроса сброса и установки нового пароля, форму, шаблоны писем и добавляет необходимые настройки в конфигурацию безопасности. Команда не принимает обязательных аргументов.

Синтаксис

php bin/console make:reset-password

Пример

Давайте выполним команду в корне проекта:

php bin/console make:reset-password

После запуска команда задаст несколько вопросов о том, какой класс пользователя использовать и как настроить отправку писем.

Which user class should be used for password reset? [App\Entity\User]: > App\Entity\User Do you want to send the reset link via email? (yes/no) [yes]: > yes Success! Next: 1. Check the new controller at src/Controller/ResetPasswordController.php 2. Add the ResetPasswordRequest entity to your schema 3. Configure the mailer to send emails

Пример

После генерации в проекте появится контроллер с маршрутами для сброса пароля:

<?php namespace App\Controller; use App\Entity\User; use App\Form\ChangePasswordFormType; use App\Form\ResetPasswordRequestFormType; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bridge\Twig\Mime\TemplatedEmail; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Mailer\MailerInterface; use Symfony\Component\Mime\Address; use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\Translation\TranslatorInterface; use SymfonyCasts\Bundle\ResetPassword\Controller\ResetPasswordControllerTrait; use SymfonyCasts\Bundle\ResetPassword\Exception\ResetPasswordExceptionInterface; use SymfonyCasts\Bundle\ResetPassword\ResetPasswordHelperInterface; #[Route('/reset-password')] class ResetPasswordController extends AbstractController { use ResetPasswordControllerTrait; public function __construct( private ResetPasswordHelperInterface $resetPasswordHelper, private EntityManagerInterface $entityManager, ) { } #[Route('', name: 'app_forgot_password_request')] public function request(Request $request, MailerInterface $mailer, TranslatorInterface $translator): Response { $form = $this->createForm(ResetPasswordRequestFormType::class); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { return $this->processSendingPasswordResetEmail( $form->get('email')->getData(), $mailer, $translator ); } return $this->render('reset_password/request.html.twig', [ 'requestForm' => $form, ]); } } ?>

Результат выполнения кода для адреса /reset-password:

<form method="post"> <label for="email">Email</label> <input type="email" id="email" name="email" required> <button type="submit">Send reset link</button> </form>

Пример

Команда также создаёт сущность для хранения запросов на сброс пароля:

<?php namespace App\Entity; use App\Repository\ResetPasswordRequestRepository; use Doctrine\ORM\Mapping as ORM; use SymfonyCasts\Bundle\ResetPassword\Model\ResetPasswordRequestInterface; use SymfonyCasts\Bundle\ResetPassword\Model\ResetPasswordRequestTrait; #[ORM\Entity(repositoryClass: ResetPasswordRequestRepository::class)] class ResetPasswordRequest implements ResetPasswordRequestInterface { use ResetPasswordRequestTrait; #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\ManyToOne] #[ORM\JoinColumn(nullable: false)] private ?User $user = null; public function __construct(User $user, \DateTimeInterface $expiresAt, string $selector, string $hashedToken) { $this->user = $user; $this->initialize($expiresAt, $selector, $hashedToken); } public function getId(): ?int { return $this->id; } public function getUser(): User { return $this->user; } } ?>

Смотрите также

  • команда make:user,
    которая создаёт класс пользователя
  • команда make:auth,
    которая генерирует систему аутентификации
  • команда make:registration-form,
    которая создаёт форму регистрации
  • команда make:migration,
    которая создаёт миграцию для сущностей
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить