Laravel 11 ile Breeze oturum sistemini kullanarak multi guard bir yapı kurdum. Eklediğim ikinci guardın adı admin.
User guardının url yapısı şu şekilde:
prefix: app
name: app.
Admin guardının url yapısı şu şekilde:
prefix: panel
name: panel.
Admin guardında üyelik işlemleri kayıtlı yönetici tarafından yapılıyor. Dışardan üye olunmuyor. O yüzden üyelikte e-posta onayı yapısı yok. Ama user guardına dışardan üye alınıyor. Üyelik dışında her iki guard yapısında da oturum açma, şifre yenileme, profil bilgilerini güncelleme, şifre değiştirme ve hesap silme işlemlerinde bir sorun yok.
Şifre yenileme işlemi için e-posta adreslerine mailler gidiyor. Ama user guardına üye olan kişiler ve her iki guard da profil sayfasında e-posta adreslerini güncelleyen kişilerin e-posta adreslerini onaylaması gerekiyor.
Talep oluştuğunda e-posta onaylanmadığına dair uyarı sayfası çıkıyor ama bir türlü e-posta onay maili gitmiyor. Hatta bu uyarı sayfasında e-postayı tekrar gönder linki var. Ona basıyorum. E-postanız gönderildi diyor ama gitmiyor.
Yaptığım işlemler;
RegisteredUserController dosyasında kullanıcı oluşturma metodunda event(new Registered($user)); kodu olduğu için yeni bir EventServiceProvider oluşturdum ve linkteki 1 nolu kodu ekledim..
User modelimde MustVerifyEmail satırını aktifleştirip classa implement ettim. 2 nolu kod.
Gidecek mail içeriğini özelleştirmek ve maildeki linkin başına app eklemek için UserVerifyEmail adında bir Notification oluşturdum. 3 ve 4 nolu kod.
AppServiceProvidery oluşturup boot metoduna da aşağıdaki kodu yazdım. 5 nolu kod.
User modelime aşağıdaki eklemeyi yaptım. 6 nolu kod.
Rotalarımda aşağıdaki gibi. 7 nolu kod.
Kodlar: https://gist.github.com/bulentsakarya/d4e228a576193ad28803d5ea27aa85b5 burada..