Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sensowne 'zapomniałem hasła'
tmk
post 7.02.2005, 14:14:14
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

Ostrzeżenie: (0%)
-----


Witam,
jaki jest sensowny sposób na zrobienie opcji "zapomniałem hasła"?
mam zrobione logowanie php+mySql na sesjach, w bazie trzymam login i md5(hasło).

Myślalem o tym, żeby użytkownik podawał email i login, i jeśli taki istnieje w bazie, to dla konta o takim email i login zrobić Update:
zapomniane hasło zamienić na jakieś losowe i wysłać mail z nowym hasłem.

Ale chyba powinna być jeszcze jakaś aktywacja tego nowego hasła? czy myślicie, że nie jest to konieczne?

z góry dzięki za opinie

tmk
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
NuLL
post 7.02.2005, 14:58:45
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Cytat
Ale chyba powinna być jeszcze jakaś aktywacja tego nowego hasła? czy myślicie, że nie jest to konieczne?


Raczej nie ma potrzeby - wystarczy sobie zadać pytanie - po co ?


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
tmk
post 7.02.2005, 18:29:23
Post #3





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

Ostrzeżenie: (0%)
-----


A jak można losować jakiś ciąg mieszany litery-cyfry? bo rand, srand, to tylko do liczb się nadają..
jest gotowa funkcja? czy trzeba jakoś swoją zmontować?



tmk
Go to the top of the page
+Quote Post
gilbo
post 7.02.2005, 18:36:39
Post #4





Grupa: Zarejestrowani
Postów: 169
Pomógł: 1
Dołączył: 16.04.2004
Skąd: z domu

Ostrzeżenie: (0%)
-----


Ja myślę, że jednak takie potwierdzenie byłoby przydatne, ponieważ osoba, która zapomniała hasła mogła podać komuś swój email i ktoś może jej to hasło zmienić, a ta osoba nie wiedząc o tym będzie się męczyła nad wpisaniem starego hasła...
Go to the top of the page
+Quote Post
crash
post 7.02.2005, 19:00:57
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Cytat(gilbo)
a ta osoba nie wiedząc o tym będzie się męczyła nad wpisaniem starego hasła

Nie wiedząc o czym? O tym, że dostała nowe hasło na maila? tongue.gif

tmk: było wiele razy na forum, poszukaj...


--------------------
Go to the top of the page
+Quote Post
Leezard
post 7.02.2005, 19:14:39
Post #6





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 19.09.2004
Skąd: Uć

Ostrzeżenie: (0%)
-----


@tmk: chyba losowanie mozna zrealizowac np generujac sobie id sesji i uzyc go jako hasla


--------------------
Nie rób nic na siłę - weź większy młotek ;)
Go to the top of the page
+Quote Post
rogrog
post 7.02.2005, 20:06:51
Post #7





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


po kliknięciu wysyłasz emaila z losowym nowym hasłem oraz linkiem aktywacyjnym. Po wejściu na ten link można użyć przesłanego losowego hasła do ustawienia nowego, własnego hasła. Email posiada też informację tego typu:

"prawdopodobnie użyłeś opcji "zapomniałem hasła". Jeżeli tego nie robiłeś, zignoruj ten email"

bo przecież linku "Zapomniałem hasła" może użyć każdy, a głupio by było codziennie mieć nowe hasło ustawiane przez zlosliwych kolegow


--------------------
Go to the top of the page
+Quote Post
dr_bonzo
post 7.02.2005, 20:24:32
Post #8





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Cytat
A jak można losować jakiś ciąg mieszany litery-cyfry? bo rand, srand, to tylko do liczb się nadają..
jest gotowa funkcja? czy trzeba jakoś swoją zmontować?

Jest taka funkcja do tworzenia takich ciagow znakow biggrin.gif tylko nie pamietam jej nazwy. Jak znajde (a konkretnie -- jak przypadkiem znow na nia trafie) to podam.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
NuLL
post 7.02.2005, 20:41:41
Post #9





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Jak masz może na serwerze jakiś słownik aspell to może sobie wbrac losowe slowo.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
Jabol
post 7.02.2005, 21:32:07
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


wiecie, podanie komuś emaila nie oznacza odrazu, że ma on dostęp do konta samego w sobie... nie przesadzajmy.
Go to the top of the page
+Quote Post
rogrog
post 8.02.2005, 16:14:17
Post #11





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


losowanie: robisz sobie tablicę z możliwymi znakami i array_rand. do wypełnienia tablicy możesz użyć range


--------------------
Go to the top of the page
+Quote Post
jono
post 8.02.2005, 18:55:34
Post #12





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 29.06.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Co do losowego hasła:

  1. <?php
  2.  
  3. $nowe = substr(md5(uniqid(rand(), true)), rand(0,10), 5);
  4.  
  5. ?>


Uzyskasz w ten sposób bardzo ładne, pięcioznakowe hasełko... a potem przy pierwszym logowaniu wyświetl komunikat: "to tylko hasło tymczasowe, ustal nowe"... ale rymuję smile.gif Po co robić jakieś tablice, skoro są gotowe rozwiązania do tego.


--------------------
if(function_exists("zrozum_kobiete")){
echo "Niemożliwe!"; exit;}
Go to the top of the page
+Quote Post
rogrog
post 8.02.2005, 19:39:28
Post #13





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


@jono: przy tablicy masz większą kontrolę nad zestawem znaków dla hasła.

no ale dla haseł zawierających wyłącznie litery i cyfry Twój kod jest ok. Wg mnie niepotrzebne obcinanie od losowej pozycji.


--------------------
Go to the top of the page
+Quote Post
talee
post 8.02.2005, 23:18:32
Post #14





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 7.09.2002
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Moim skromnym zdaniem jedyne słuszne smile.gif rozwiązanie wygląda następująca:
'zapomniałem hasła' klik,
formularz adres ‘e-mail’ zapominalskiego,
na ten mail idzie list z linkiem do formularza ‘nowe hasło’, ‘powtórz hasło’,
kolo wpisuje co trzeba i po krzyku.
Link oczywiście ma jakiś tam okres ważności.


--------------------
Inni dążą do doskonałości, ja nie muszę ;)
Go to the top of the page
+Quote Post
AxZx
post 9.05.2005, 21:58:59
Post #15





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


skonczmy teoretyzowac smile.gif
przejdzmy do konkretow smile.gif

skad ten ostatni formularz do nowego hasla ma wiedziec ze odpowiednia osoba chce zmienic haslo ? - swoje haslo

w linku podac jakis sid skladajacy sie z 32 znakow? i sprawdzic czy ten kto wchodzi wchodzi poprzed dobrego linka czyli sprawdza id z linka z jakims tam sid pobranym np z bazy ?
czyli trzeba utworzyc kolejna kolumne w tabeli user
dobre?
tak zrobilem newsletter do usuwania kogos i potwierdzania checi dostawania newsow.


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
tomilipin
post 17.11.2005, 22:43:28
Post #16





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 28.01.2004
Skąd: że znowu ლ(ಠ益ಠლ

Ostrzeżenie: (0%)
-----


Cytat(jono @ 2005-02-08 19:55:34)
Co do losowego hasła:
  1. <?php
  2.  
  3. $nowe = substr(md5(uniqid(rand(), true)), rand(0,10), 5);
  4.  
  5. ?>
[...] Po co robić jakieś tablice, skoro są gotowe rozwiązania do tego.
Sorry, że odpowiadam trochę po czasie, ale powiem wam jak zrobiłem to ja, chociaż zaawansowany nie jestem.

Nowe hasełko można wygenerować za pomocą
  1. <?php
  2. $nowehaslo = uniqid(' ');
  3. ?>
Co da w rezultacie ciąg 13 cyfr i liter wygenerowany na podstawie aktualnego czasu + może dodać ciąg zawarty w atrybutach.

W bazie, dla każdego usera warto zapisywać jego status, np. 0 to user nieaktywny, 1 - aktywny, 2 - była prośba o zmianę hasła. Gdy status=0 to do usera nie wysyłamy wiadomości newslettera. Gdy status=1 wiadomo, a gdy status=2 możemy wysłać wiadomości np. newslettera bo ktoś, nie wiadomo kto, próbował usunąć konto/zmienić dane/zrobić cokolwiek co wymaga potwierdzenia ale jeszcze tego nie potwierdził. I gdy status=2 a user potwierdza co tam chciał to wtedy zmieniamy mu status na inny albo usuwamy rekord. Statusy mogą się różnić w zależności od potrzeb, zawsze może być ich więcej winksmiley.jpg

Tak robię swój newsletter, który działa na tekstowej bazie danych a który wymaga potwierdzenia dodania/usunięcia adresu e-mail i umożliwia to za pomocą linków w mailach oraz za pomocą formularza smile.gif Jeśli ktoś zgubi klucz potwierdzenia, usunie maila czy cokolwiek innego, to dopóki status nie równa się 1 - może wysłać do siebie nowy klucz, inny od poprzedniego.
http://www.pil.vectranet.pl/~tomilipin/newsletter/index.php

Ten post edytował tomilipin 17.11.2005, 22:45:31


--------------------
Kod
$kobieta = 'Kobieta zmienną jest...';
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 13:06