fatihyuzuguldu Bu SMS genelde OTP (one-time password) olarak geçer, normal SMS'den farklıdır.
- OTP isteklerini tutan bir tablo oluşturacaksınız. id, user_id, code, created_at. Modeli de OtpRequest olsun. User ile OtpRequest arasında otpRequests isimli bir HasMany ilişkisi kuracaksınız.
- Bir tane endpoint kullanıcıyı telefon numarasından bulup, bir otp kodu oluşturup, otpRequests ilişkisini kullanıp bunu kaydedecek ve OtpRequested gibi bir event fırlatacaksınız.
- Bir tane SendOtpSMSNotification gibi bir listener yazacaksınız ve OtpRequested event'ını dinleyeceksiniz.
- OtpNotification isimli bir notification yazacaksınız ve SendOtpSMSNotification listener'ı içinde bunu göndereceksiniz.
- Bir endpoint kullanıcının telefon numarası ve otp kodu ile giriş yapmaya çalışacak. Önce telefon ile kullanıcıyı bulacaksınız, sonra otpRequests tablosunda son eklenen kayıttaki code alanını ve tarihi (son 3 dk içinde gelmiş ise gibi) kontrol edeceksiniz. İkisi tutarsa kullanıcıyı giriş yaptıracaksınız.
Bu durumda bakmanız gereken temel yerler:
HasMany İlişkisi
https://laravel.com/docs/11.x/eloquent-relationships#one-to-many
Event/Listener Kurgusu
https://laravel.com/docs/11.x/events
SMS Bildirimi İçin Notification
https://laravel.com/docs/11.x/notifications
Kullanıcı Login
https://laravel.com/docs/11.x/authentication
Birden fazla adım içerdiği için tek seferde komple çalışan bir sistemi buraya yazmak zor olacaktır. Adım adım ilerleyin, takıldığınız yeri sorun, öyle yardımcı olayım.