Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przypomnienie hasla - algorytm
Forum PHP.pl > Forum > PHP
andycole
Witam,

Opcja przypomnienia hasla na serwisie.
Do dyspozycji mam jedynie e-maila uzytkownika.
W zasadzie w wiekszosci przypadkow robi sie to chyba tak:

Uzytkownik proszony jest o podanie e-maila, jezeli e-mail znaleziony zostal w bazie, zostaje wygenerowane nowe haslo, ktore zapisujemy do bazy i wysylamy uzytkownikowi na e-maila, deaktywujac jednoczesnie konto. W mailu oprocz nowego hasla przesylamy link aktywujacy.
Glowny minus tego rozwiazania: ktos moze kilka razy dziennie zmieniac nam haslo wiedzac, ze nasz mail figuruje w bazie danych.

Proponowane rozwiazanie:

Uzytkownik podaje e-maila, jezeli istnieje w bazie, proszony jest o haslo do skrzynki pocztowej. Za pomoca curl'a sprawdzam czy mozna sie zalogowac do skrzynki, jezeli tak to wysylamy/wyswietlamy mu nowe haslo.

Czy taki pomysl jest dobry? W kwestii pracy z curlem jestem poki co teoretykiem jedynie tongue.gif
nospor
Cytat
Glowny minus tego rozwiazania: ktos moze kilka razy dziennie zmieniac nam haslo wiedzac, ze nasz mail figuruje w bazie danych.
To zamiast zmieniac hasło od razu, to wysyłaj tylko linka do zmiany hasła. Dopiero gdy koleś kliknie w linka, ktory otrzymał w mailu, to dopiero potem zmieniaj mu hasło
andycole
Fakt, myslalem o takim rozwiazaniu, ale nie chcialem tworzyc dodatkowego pola z nowym haslem.
Hmn, chociaz w tej chwili uswiadomilem sobie, ze przeciez w bazie nie musze zapisac nowego hasla, wszystko bedzie zawarte w linku aktywacyjnym i tak jak mowisz, dopiero po kliknieciu haslo zostanie zedytowane.

Zakrecilem, zakrecilem, dzieki za wskazowke smile.gif

temat do zamkniecia w sumie smile.gif
Crozin
Gdzie Ty się chcesz komuś logować na skrzynkę pocztową...

1) Użytkownik podaje swój adres email
2) W skrzynce dostaje maila z linkiem w stylu: ..../przypomnij-haslo/123456/3453413fjdsjfsfjsdkj Gdzie 123456 to ID maila, a drugi kod to losowo wygenerowany token (on jest również zapisany w bazie danych strony)
3) Po wejściu na taki link sprwdzasz czy w bazie danych istnieje para: 123456, 3453... - jeśli tak generujesz losowe hasło, ustawiasz to hasło jako hasło użytkownika oraz wyświetlaszu mu je (ew. wysyłasz na maila)
andycole
Tak, racja, racja, problem juz rozwiazalem w taki sposob:

user podaje maila
na maila w linku wysylam id usera, token (md5(hash.mail)) i md5(nowe haslo)...
dopiero po kliknieciu w linka haslo jest zmieniane...
a token stworzony na podstawie maila to po to by nie tworzyc nowych zbednych kolumn w tabeli
michalkjp
Cytat(andycole @ 19.02.2010, 21:06:44 ) *
proszony jest o haslo do skrzynki pocztowej.
<br /><br /><br />

O LOL biggrin.gif Co Ty palisz biggrin.gif

Sorry, ale nie mogłem się powstrzymać po przeczytaniu tego... smile.gif
viking
Cytat(andycole @ 21.02.2010, 16:08:16 ) *
Tak, racja, racja, problem juz rozwiazalem w taki sposob:

user podaje maila
na maila w linku wysylam id usera, token (md5(hash.mail)) i md5(nowe haslo)...
dopiero po kliknieciu w linka haslo jest zmieniane...
a token stworzony na podstawie maila to po to by nie tworzyc nowych zbednych kolumn w tabeli

A po co w ogóle słać użytkownikowi nowe hasło? Ja mam jeszcze (pomijając że do tego jest cała tabela załóżmy "nowehasla", w końcu od tego jest baza) czas wysłania który aktywny jest przez x dni. Po tym czasie trzeba wygenerować nowy hash. Oczywiście aktywny jest tylko jeden na raz dla danego konta. Oprócz tego zbieram IP i wyświetlam użytkownikowi żeby mógł sobie sprawdzić czy ktoś nie kombinuje z jego kontem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.