Laravel Şifreleme - Laravel Türkiye Forumları
Merhaba arkadaşlar ben şifreleri veritabanına kaydederken bcrypt() şifrelemeyi kullanıyorum şifremi unuttum bölümü yapacam gelen şifre bcrypt lenmiş oluyor. şifreyi bcrypt siz halini nasıl alabilirim
Kriptonun geri dönüşü yoktur, kullanım amacı zaten budur. Pek çok yazılımda karşılaştığımızın aynısı, Laravelde parolamı unuttum işlemi kullanıcıya yeni üretilmiş bir parola göndermek mantığı ile çalışır. Kullanıcı bu parola ile giriş yapar, ondan sonra ister değiştir ister aynı şifre ile giriş yapmaya devam eder.
Kontrolleri yapmam için sistemdeki mail adresine şifre göndermem gerekiyor eğer farklı bir mail yazarlarsa uyarı vermem lazım bunun için kontrolleri şifreninn kriptolonmamış hali lazım çünkü Laravelin auth controllerinde şifre eşlenmesini istiyor ben kendim sql yazınca da Maximum function nesting level of '100' reached, aborting! hatası veriyor
yalnis anlamadiysam, sen sifre sifirlama formundan gelen veri ile kendin bir dogrulama yapmak istiyorsun, suradaki dosyaya göz atabilirsin..
Belki biliyorsundur, üzerinden gecelim;
sifrenin kriptolanmamis halini elde etmek istiyorsan, users tablosuna yeni bir alan ac ve yazilan sifreyi oraya kriptosuz kaydet, fakat bu hic bir zaman senin yararina olmaz. Mantik sudur, sifremi bir kere 1234567 verdimmi bcrpyt degeri atiyorum $2a$04$I0Ssc.IfvJSVRUfg0R.WCeG9ty29o1uDXI9U4.mfySSQ7zsM0XEwC giibi birsey verir, daha sorna ben giris formuna 1234567 yazidimgimda onu bcyrpt ile tekrar sifreler ve sutundaki kayitla es deger ise giris yapar..
Hocam tam olarak şu şekilde benim users tablosunda bölümünde id,username,email ve password alanları var. login işlemleri yaparken username,email ve password değerlerini alıp users tablosunda eşleşiyor ise giriş yapıyorum burda bir sıkıntı yok ,
kullanıcı şifresini unuttuğu zaman şifre değiştirebilsin diye username ve email alanlarını kullanıcıdan isteyip sistemde böyle bir kullanıcı var mı yok mu kontrol etmem lazım ona göre hangi kullanıcı olduğunu anlayıp onun şifresini sadece değiştirmem gerekiyor ve sistemde kayıtlı olan email adresine random oluşturduğum şifreyi gönderecem umarım anlatabilmişim
bunun icin ayri bir controller kullanmayi deniyebilirsin?
routede bir üyesifresifirla olusturup, arkasindan controllerda email ve username dogrulamasindan sonra bir sifre üretip email olarak gönderebilirsin?
Hocam controller içinde kontrol işlemini yapıyorum şifre üretiyorum ama mail controller içinden gönderilmiyor göndermeye çalıştığımda Maximum function nesting level of '100' reached, aborting! hatası veriyor. routes.php iiçinden göndermeye çalıştığımda mail gidiyor niye böyle bişey oluyor anlamıyorum
xdebug ayar dosyasindaki xdebug.max_nesting_level=100 satirini yükselterek cözebilirsin.
mirimiran wrote: ...kullanıcı şifresini unuttuğu zaman şifre değiştirebilsin diye username ve email alanlarını kullanıcıdan isteyip sistemde böyle bir kullanıcı var mı yok mu kontrol etmem lazım ona göre hangi kullanıcı olduğunu anlayıp onun şifresini sadece değiştirmem gerekiyor ve sistemde kayıtlı olan email adresine random oluşturduğum şifreyi gönderecem umarım anlatabilmişim
Yani birisi kullanıcı adı ve email adresini biliyorsa, şifrenizi bilmese dahi şifrenizi sıfırlayabilir. Bir bakmışsınız posta kutunuzda düzinelerce, içerisinde random şifre bulunan email
Çözüm önerin nedir?
nerden xdebug ayarını değiştirecem
bu soruyu sorduguna göre bu cözüm önerisini gecelim, Mail gönderimine odaklanalim..
Mail gönderimini sunu sekidle bir test edermisin?
---------- dosyanin en basina
Mail::send('email.test', $data, function($message)
(Bu çözüm zaten laravel içerisinde mevcut https://laravel.com/docs/5.2/authentication#resetting-passwords
Öncelikle ayrı bir tablonuz olacak. Tablo alanları:
email, token, created_at
Kullanıcı şifresini sıfırlamak istediğinde şifremi unuttum linkini tıklayacak. Karşısına çıkan formda email adresini girecek (ekstra bilgiler de isteyebilirsiniz).
Formu gönderdiğinde emaili kontrol edeceksiniz, email varsa şifre sıfırlama tablosuna:
- email adresini işleyeceksiniz
- rastgele bir token oluşturup token alanına işleyecesiniz (FRpLwcuxmdFEKf5P gibi).
- sıfırlama isteğinin oluşturulduğu tarihi created_at alanına işleyeceksiniz.
Daha sonra kullanıcının email adresine içerisinde şifre sıfırlamasını sağlayacak bir link göndereceksiniz. Bu link şu şekilde olacak örneğin:
Bu link için bir route ve controller olacak, örneğin PasswordController
reset yöntemi içerisinde tokenı şifre sıfırlama tablonuzdan kontrol edeceksiniz:
- Böyle bir token var mı
- Oluşturulalı 24 saat geçti mi (ya da linkin kaç saat geçerli olmasını istiyorsanız)
Şartlara uyuyorsa tablodan kullanıcı emailini de alıp bir formda email, şifre ve şifre tekrarı isteyeceksiniz. Forma ayrıca tokenı da hidden olarak eklemeyi unutmayın
Kullanıcı bilgileri girdikten sonra tekrar tokeni email, şifre tekrarı kontrolleri yapıp kullanıcının şifresini girdiği email ve şifreye göre değiştireceksiniz.
Şifre sıfırlama tablosundan ilgili tokenın bulunduğu satırı sildireceksiniz.
Mail işlemlerinde hata almamın nedeni phpdeki xdebug ayarındanmış dün xammp ı kurdum sorunsuz çalışıyor şuan yardımlarınız için teşekkür ederim
Sorunun çözüldüğüne sevindim.
Teşekkür ederim sizlerin sayesinde öğreniyoruz
Estağfurullah. İyi çalışmalar dilerim.