Ich möchte, dass der Benutzer nicht angemeldet ist und eine Seite meiner Website mit Ausnahme meiner REST VIEWS-Router besucht. Ich leite ihn / sie zur Anmeldeseite in Drupal 8 weiter. Ich habe diese Lösung für Drupal 7 gefunden, aber keine Lösung für Drupal 8 gefunden.
8
routes
redirection
event-subscriber
David Mcsmith
quelle
quelle
KernelEvents::REQUEST
reagieren, und dann die Antwort auf eine RedirectResponse für die Anmeldeseite festlegen./user
und dann, wenn sie anonym sind, auf/user/login
, aber mit dem Nebeneffekt, dass authentifizierte Benutzer in ihr Benutzerprofil aufgenommen werden, ohne ihnen mitzuteilen, dass ihnen der Zugriff auf die von ihnen gesuchte Seite verweigert wurde .Antworten:
Sie können den Status eines Benutzers sehr früh mit einem Ereignisabonnenten in einem benutzerdefinierten Modul testen, das KernelEvents :: REQUEST abonniert.
Zunächst registrieren Sie den Ereignis-Abonnenten
mymodule.services.yml
in Ihrem Modulordner:Fügen Sie dann
RedirectAnonymousSubscriber.php
für Ihren benutzerdefinierten Ereignisabonnenten in Ihrem Modul den/src/EventSubscriber/
Ordner hinzu.quelle
RedirectAnonymousSubscriber.php
, ich aktualisiere deine antwort.Erstellen Sie zunächst einen Dienst für Ihren Veranstaltungsteilnehmer in
module-name.services.yml
Code -
Erstellen Sie Ihre eigene eventsubscriber-Klasse im
modules/module-name/src/EventSubscriber
Verzeichnis:quelle
Unter Drupal 8.3.3 führt dieser Code zu einer endlosen Umleitung. Ich habe das behoben, indem ich das stattdessen hinzufügte.
quelle