• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przypomnienie hasła...

Object Storage Arubacloud
0 głosów
587 wizyt
pytanie zadane 5 marca 2016 w PHP przez saliwan22 Gaduła (3,110 p.)
Witam!

Mam pytanie jak okodować automatyczne wysyłanie hasła użytkownika na jego email po naciśnięciu "zapomniałem  hasła". Ma ktoś może jakiś pomysł???

Z góry dzięki za poświęcony czas

3 odpowiedzi

+3 głosów
odpowiedź 7 marca 2016 przez efiku Szeryf (75,160 p.)
edycja 7 marca 2016 przez efiku

Pewnego razu napisałem historyjkę odnośnie aktywacji konta w serwisie pewnej osobie i myślę, że jak umiesz czytać ze zrozumieniem to masz... gotowca ;) bo przerobienie tego na zmianę hasła będzie proste.

 

Napiszmy sobie może małą historyjkę  ( Uppercase to Ważne funkcje które są podstawą funkcjonowania Twojej domeny )

Jesteś sobie Ania. 
I jako wesoła Ania chcesz SIĘ ZAREJESTROWAĆ  na stronie swojej koleżanki.
Więc wypełniasz odpowiednie dane w formularzu rejestracyjnym. 
Włącznie z PRAWIDŁOWYM adresem MAIL, LOGINEM, HASŁEM, datą urodzenia, hobby, płcią. 
Niestety strona koleżanki wymaga abyś potwierdziła swoją rejestrację poprzez : KLIKNIĘCIE w WYGENEROWANY LINK AKTYWACYJNY który przyszedł Ci na MAILA.
Zatem wchodzisz w swoją skrzynkę pocztową. Widzisz w niej wiadomość z serwisu koleżanki która wygląda mniej więcej tak:
 



Witaj ANIU!
Aby móc aktywować swoje konto w moim serwisie kliknij proszę w link poniżej:
http://strona.kolezanki.pl/activate/311/4289c23c311c31c131c44421af31ff314/
Pozdrawiamy!
 




Po kliknięciu na link powinnaś zostać poinformowana iż Twoje konto ZOSTAŁO AKTYWOWANE i możesz się zalogować.

 



Teraz wyciągnijmy wnioski z tej historii co tu można się dowiedzieć.
A to tak
tabela z userami musi na 100% zawierać pole z id usera, mailem, z zaszyfrowanym hasłem,  z loginem, kodem aktywacyjnym, polem typu bool czy aktywny jest dany user , domyślnie NIE.

Co można zrobić przy rejestracji? 
A no proste. 
Sprawdzamy czy wszystkie pola się zgadzają. Generujemy unikalny kod. 
Takie generowanie kodu można zrobić za pomocą np random_bytes ( YAY PHP7! )http://php.net/manual/en/function.random-bytes.php#refsect1-function.random-bytes-examples od 20 np.
Mając wygenerowany unikalny kod... mamy już wszystko i możemy dodać go do bazy.


Co można zrobić przy aktywacji?
Jak widzisz wchodzisz przez link /activate/311/randomCode
 Co można się dowiedzieć z tego? 
  - 311 to id usera w bazie 
  - randomCode to kod który jest w bazie

 A więc znowu proste.
  
 filtrujesz parametr id i parametr od randomCode.

 Następnie z bazy pobierasz tylko kod, czy_aktywny na podstawie jego id .
 I teraz jeżeli kod który pobrałaś zgadza się z kodem który user przesłał i jest on nieaktywny to.. 
 Zmieniasz mu status na aktywny
 Dziękujesz ładnie za zarejestrowanie.
 Przenosisz do logowania.

- Maile -> ShiftMailer
- Kod HTML -> Twig ( szablony )
-  random_bytes -> https://3v4l.org/D30gq#v704
 

U Ciebie byłaby taka zmiana, że po prostu masz link unikalny do usera i pokazujesz mu formularz zmiany hasła. Więc formularz zmiany hasła to powinien być osobny moduł :)

 

PS: Ja tak sobie projektuje apki zanim siądę do kodu. Dobry kod to taki, który jak czytasz to opowiada pewną historię.. 

komentarz 7 marca 2016 przez saliwan22 Gaduła (3,110 p.)
No powiem ci że szalona ta historia...
1
komentarz 7 marca 2016 przez efiku Szeryf (75,160 p.)
słowo klucz → behat.
+1 głos
odpowiedź 5 marca 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)

automatyczne wysyłanie hasła użytkownika na jego email

Jest to nierealne do wykonania, gdyż nie przechowuje się hasła zapisanego czystym tekstem w bazie danych ani nigdzie. Hasło ma być zapisane w postaci hasha, a tego w żaden sposób nie odwrócisz.

Jedyne co możesz zrobić to jakieś resetowanie hasła - czyli np. ktoś poda swój login. email czy co tam sobie zamyślisz i wtedy w bazie zostanie zmienione hasło oraz przesłane mu na emaila. Inna opcja to wysłanie linka do przygotowanej podstrony na której będzie mógł sobie sam ustawić nowe hasło.

komentarz 5 marca 2016 przez saliwan22 Gaduła (3,110 p.)
Chodziło mi o to, że automatycznie wygenerowane nwm 9 znaków po podaniu emiala znajdującego się w bazie przypisanego do danego konta zostanie wysłane z jakiegoś emaila(stworzonego na potrzeby strony) na email podany przez użytkownika (czasami dostaje się wiadomość na emialu zaraz po wykonaniu takiej czynności i pisze że email został utworzony automatycznie i nie należy na niego odpisywać) czyli chodzi mi o ten email żeby był generowany automatycznie i sam się wysyłał żęby ktoś nie musiał siedzieć i pisać to ręcznie.
komentarz 6 marca 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
No to jest funkcja mail() wbudowana w PHP, ale jest mało wygodna i często problematyczna. Użyj PHPMailer lub SwiftMailer - są to biblioteki do wysyłania maili lepsze i łatwiejsze niż wbudowane mail().
komentarz 6 marca 2016 przez saliwan22 Gaduła (3,110 p.)
Dzięki za pomoc!
komentarz 6 marca 2016 przez efiku Szeryf (75,160 p.)
Jak wroce do domu o 20 to Ci napisze jak to ogarnąć. Takie Maile automatyczne wygenerujesz z linkiem do resetu zawierajacego w sobie hash (identyfikator, klucz autoryzacji )
0 głosów
odpowiedź 5 marca 2016 przez Frendom Pasjonat (18,900 p.)
Chodzi ci o sposob przywracania hasla czy gotowy skrypt? Na drugie raczej nie masz co liczyc. Jezeli jednak chodzi o pierwszy, to klikasz zapomnialem hasla i tutaj masz pole do popisu. Mozesz np podac login dla ktorego ma zostac wyslane haslo na maila. Wtedy po wprowadzeniu loginu, sprawdzeniu czy istnieje taki w bazie na maila, ktory w bazie jest przy danym nicku wysylane jest nowe haslo. Mozesz to tez zrobic na podstawie jakiegos hinta. Ze nalezy odpowiedziec na zadane pytanie (oczywiscie wszystko musi byc przechowywane w bazie) i dopiero wtedy wysylane jest nowe haslo
komentarz 5 marca 2016 przez saliwan22 Gaduła (3,110 p.)
Chodzi mi o to jak zrobić tak aby jakiś tam email stworzony na potrzebę strony po np podaniu e maila automatycznie wysyłał wiadomość z losowo wygenerowanym hasłem (czasami dostaje się wiadomość na emialu zaraz po wykonaniu takiej czynności i pisze że email został utworzony automatycznie i nie należy na niego odpisywać)

Podobne pytania

+1 głos
2 odpowiedzi 510 wizyt
pytanie zadane 16 sierpnia 2020 w PHP przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 487 wizyt
pytanie zadane 6 maja 2019 w PHP przez manager96 Bywalec (2,050 p.)
0 głosów
2 odpowiedzi 225 wizyt
pytanie zadane 10 maja 2015 w Nasze projekty przez aspoka Mądrala (5,290 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...