Новое в MakerBundle 1.15: make:reset-password & make:message

MakerBundle 1.15 был только что выпущен и поставляется с несколькими новыми производителями. Давайте взглянем!

Генерация полной, безопасной настройки пользователя с помощью make:reset-password

В MakerBundle уже было почти все необходимое для быстрой загрузки всей системы безопасности благодаря make:user, make:auth (для аутентификаторов) и make:registration-form. Единственным распространенным отсутствующим элементом была система сброса пароля.

Теперь вы можете создать полнофункциональную и безопасную систему сброса пароля с помощью:

 php bin/console make:reset-password

# ... несколько вопросов

created: src/Controller/ResetPasswordController.php
created: src/Entity/ResetPasswordRequest.php
created: src/Repository/ResetPasswordRequestRepository.php
updated: config/packages/reset_password.yaml
created: src/Form/ResetPasswordRequestFormType.php
created: src/Form/ChangePasswordFormType.php
created: templates/reset_password/check_email.html.twig
created: templates/reset_password/email.html.twig
created: templates/reset_password/request.html.twig
created: templates/reset_password/reset.html.twig

Задав несколько вопросов, вы получите все необходимое для сброса пароля пользователем: пользователь вводит свой адрес электронной почты в форму, ваше приложение отправляет электронное письмо с сообщением «сброс пароля», пользователь нажимает ссылку для одноразового использования, ссылка подтверждена, и пользователь может выбрать новый пароль. Просто зайдите /reset-password и попробуйте!

За кулисами команда использует новый SymfonyCastsPasswordResetBundle для обработки чувствительных к безопасности (и скучных) частей процесса. Было приложено много усилий, чтобы сделать эту систему самой безопасной паролем сброса, включая функции, которые предотвращают атаки по времени, обеспечивают регулирование и предотвращают «утечку» токена сброса в JavaScript, немедленно удаляя его из URL.

Огромное спасибо за потрясающую работу, проделанную Джесси Рашлоу, который провел большую часть исследований и работал как над связкой, так и над командой. Спасибо также Ромарику Дригону, который потратил огромные усилия, чтобы начать это.

Сообщение, обработчик и маршрутизация с make:message

В комплекте также появилась новая команда, упрощающая генерацию сообщений Messenger. Это сгенерирует пустой класс сообщений, обработчик, который предварительно настроен для обработки этого сообщения, и направит ваше сообщение на транспорт в messenger.yaml, если вы выберете эту опцию:

php bin/console make:message

The name of the message class (e.g. SendEmailMessage):
> CreateImageThumbnails

Which transport do you want to route your message to? [[no transport]]:
  [0] [no transport]
  [1] async
  [2] async_high_priority
> 1

created: src/Message/CreateImageThumbnails.php
created: src/MessageHandler/CreateImageThumbnailsHandler.php
updated: config/packages/messenger.yaml

Спасибо Николя Филиппу за этот вклад!

make:messenger-middleware

Если вам нужно создать собственное промежуточное программное обеспечение Messenger, теперь вы также можете сгенерировать это:

php bin/console make:messenger-middleware

The name of the middleware class (e.g. CustomMiddleware):
> MyLoggingMiddleware

created: src/Middleware/MyLoggingMiddleware.php

Next:
 - Add the middleware to your config/packages/messenger.yaml file

Спасибо Imad Zairig за этот вклад!