Saya ingin jika pengguna tidak masuk dan mengunjungi halaman situs web saya kecuali router REST VIEWS saya mengarahkannya ke halaman login di drupal 8, saya menemukan solusi ini untuk drupal 7 tetapi tidak menemukan solusi untuk Drupal 8,
8
routes
redirection
event-subscriber
David Mcsmith
sumber
sumber
KernelEvents::REQUEST
acara dan kemudian mengatur respons ke RedirectResponse untuk halaman login./user
dan kemudian jika mereka anonim, itu akan membawa mereka ke/user/login
, tetapi dengan efek samping dari mengambil pengguna terotentikasi ke profil pengguna mereka tanpa memberi tahu mereka bahwa mereka telah ditolak akses ke halaman yang mereka cari .Jawaban:
Anda dapat menguji status pengguna sangat awal dengan pelanggan acara dalam modul khusus yang berlangganan KernelEvents :: REQUEST.
Pertama, Anda mendaftarkan pelanggan acara di
mymodule.services.yml
dalam folder modul Anda:Kemudian tambahkan
RedirectAnonymousSubscriber.php
untuk pelanggan acara kustom Anda di modul Anda di/src/EventSubscriber/
folder.sumber
RedirectAnonymousSubscriber.php
, saya memperbarui jawaban Anda.Pada Drupal 8.3.3, kode ini menyebabkan redirection tanpa akhir. Saya telah memperbaikinya dengan menambahkan itu sebagai gantinya.
sumber
Pertama, buat layanan untuk pelanggan acara Anda di
module-name.services.yml
Kode -
Buat acara Anda sendiri kelas pelanggan di dalam
modules/module-name/src/EventSubscriber
direktori:sumber