Quiero que si el usuario no ha iniciado sesión y visita alguna página de mi sitio web, excepto mis enrutadores REST VIEWS , lo redirijo a la página de inicio de sesión en drupal 8, encontré estas soluciones para drupal 7 pero no encontré ninguna solución para Drupal 8,
8
routes
redirection
event-subscriber
David Mcsmith
fuente
fuente
KernelEvents::REQUEST
evento y luego establecería la respuesta a una Respuesta de redireccionamiento para la página de inicio de sesión./user
y luego, si son anónimos, los llevará/user/login
, pero con el efecto secundario de llevar a los usuarios autenticados a su perfil de usuario sin decirles que se les ha denegado el acceso a la página que estaban buscando. .Respuestas:
Puede probar el estado de un usuario muy temprano con el suscriptor de eventos en un módulo personalizado que se suscribe a KernelEvents :: REQUEST.
Primero, registra el suscriptor del evento
mymodule.services.yml
en la carpeta de su módulo:Luego agregue
RedirectAnonymousSubscriber.php
para su suscriptor de evento personalizado en su módulo en la/src/EventSubscriber/
carpeta.fuente
RedirectAnonymousSubscriber.php
, actualizo tu respuesta.En Drupal 8.3.3, este código provoca una redirección sin fin. Lo arreglé agregando eso en su lugar.
fuente
Primero, cree un servicio para su suscriptor de eventos en
module-name.services.yml
código -
Cree su propia clase de suscriptor de eventos dentro del
modules/module-name/src/EventSubscriber
directorio:fuente