Je veux que si l'utilisateur n'est pas connecté et visite n'importe quelle page de mon site Web à l' exception de mes routeurs REST VIEWS, je le redirige vers la page de connexion dans drupal 8, j'ai trouvé ces solutions pour drupal 7 mais je n'ai trouvé aucune solution pour Drupal 8,
8
routes
redirection
event-subscriber
David Mcsmith
la source
la source
KernelEvents::REQUEST
événement, puis définiriez la réponse sur une RedirectResponse pour la page de connexion./user
puis s'ils sont anonymes, cela les amènera à/user/login
, mais avec pour effet secondaire de prendre les utilisateurs authentifiés sur leur profil d'utilisateur sans leur dire qu'ils se sont vu refuser l'accès à la page qu'ils recherchaient .Réponses:
Vous pouvez tester très tôt le statut d'un utilisateur avec un abonné aux événements dans un module personnalisé qui s'abonne à KernelEvents :: REQUEST.
Tout d'abord, vous enregistrez l'abonné à l'événement
mymodule.services.yml
dans votre dossier de module:Ajoutez ensuite
RedirectAnonymousSubscriber.php
pour votre abonné événement personnalisé dans votre module dans le/src/EventSubscriber/
dossier.la source
RedirectAnonymousSubscriber.php
, je mets à jour votre réponse.Sur Drupal 8.3.3, ce code provoque une redirection sans fin. J'ai corrigé cela en l'ajoutant à la place.
la source
Créez d'abord un service pour votre abonné à l'événement
module-name.services.yml
Code -
Créez votre propre classe eventsubscriber dans le
modules/module-name/src/EventSubscriber
répertoire:la source