MakerBundle añade nuevos comandos para resetear contraseñas y generar mensajes
MakerBundle es un bundle de Symfony que genera automáticamente parte del código que necesitas en tu aplicación (controladores, comandos, formularios, etc.) La versión 1.15 del bundle se acaba de publicar con las siguientes novedades.
Nuevo comando para implementar "Olvidé mi contraseña"
El bundle ya incluía casi todo lo que necesitas para configurar la seguridad
de tu aplicación gracias a los comandos make:user
, make:auth
y
make:registration-form
. Lo único que faltaba era algo para automatizar una
funcionalidad que seguro que has tenido que implementar alguna vez: "Olvidé mi contraseña".
En esta nueva versión del bundle, simplemente tienes que ejecutar el comando
make:reset-password
y Symfony genera todo el código necesario:
$ php bin/console make:reset-password # ... aquí respondes a algunas preguntas que te hace el comando ... 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
Después de contestar a las preguntas que te hace el comando, se genera
automáticamente todo el código PHP y Twig necesario para que: 1) los usuarios
introduzcan su dirección de email en un formulario; 2) tu aplicación envíe un
email para "resetear la contraseña"; 3) los usuarios pinchen en un enlace especial
que solo se puede usar una vez; 4) el enlace es validado; 5) los usuarios pueden
cambiar su contraseña. Solo tienes que visitar la URL /reset-password
para
verlo en acción.
Internamente el comando usa el bundle SymfonyCastsPasswordResetBundle para realizar todas las tareas críticas de seguridad. Hemos tenido mucho cuidado para crear el sistema de reseteo de contraseñas más seguro posible. Esto incluye protección frente a "timing attacks", la limitación de las peticiones que se pueden hacer para resetear la contraseña, y la protección del token que se emplea para resetear de manera que no se pueda acceder a el mediante JavaScript.
Esta funcionalidad fue contribuida por Jesse Rushlow y Romaric Drigon en los pull requests #567 y #359.
Nuevo comando para generar mensajes de Messenger
El bundle ahora también incluye un comando para generar mensajes relacionados con el componente Messenger:
$ 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
Este comando genera una clase vacía para el mensaje, un handler configurado
para manejar ese tipo de mensajes y, opcionalmente, actualiza la configuración
del archivo messenger.yaml
para enrutar el mensaje al transporte adecuado.
Esta funcionalidad fue contribuida por Nicolas Philippe en el pull request #338.
Nuevo comando para generar middleware de Messenger
Otro comando añadido en esta versión es make:messenger-middleware
, que permite
generar middlewares para el componente 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
Esta funcionalidad fue contribuida por Imad Zairig en el pull request #574.
Fuente: New in MakerBundle 1.15: make:reset-password & make:message
Comentarios
Proyectos Symfony destacados
La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.