Avatar billede TheYaXxE Juniormester
13. marts 2014 - 14:59 Der er 3 kommentarer og
1 løsning

Nulstil Password - Hvilken metode er bedst?

Jeg er i gang med at bygge en "Nulstil Password" funktion på min side og det virker ganske glimrende.

Systemet virker på den måde at når en bruger indtaster sin mail og trykker på knappen: "Nulstil" bliver der tilsendt en mail med et link. Dette link består af en automatisk genereret aktiverings-nøgle, der blev genereret samtidigt med at man klikkede på knappen og brugernavnet på den bruger som udførte anmodningen.

Når man så klikker på dette link undersøger systemet om denne brugere har lavet en "Nulstil Password"-anmodning. Er det tilfældet, bliver man bedt om at skrive et nyt password, som så vil blive opdateret i databasen.

Mit spørgsmål er:

Hvor er det bedst at gemme denne aktiverings-nøgle?

1. I en seperat tabel (fx: reset_password_request)
2. I samme tabel som brugerne i en kolonne for sig selv

1. Første tabel kunne se således ud:

ID  |    username      |    activation_key      |      time

NOTE: "time" kan evt. bruges til at sørge for at anmodningen maks. må være et bestemt antal timer gammel, for at virke.

----

2. Anden tabel kunne se således ud:

ID    |      name        |      email      |        username        |        created_date      |      activation_key

----


Indtil videre bruger jeg Første metode.
Ulempen her, er dog at, når en anmodning er blevet brugt eller udløbet skal den slette hele rækken.
Fordelen her, er at man nemt kan lave en udløbs-tid for anmodningen.

Anden metode er den samme metode som WordPress bruger har jeg set.
Ulempen her, er at det ikke er lige til at lave en udløbs-tid for anmodningen.
Fordelen her, er at at når en anmodning er blevet brugt ryddes "activation_key"-feltet bare.

Jeg er fast besluttet på at bruge database metoden, da det er den mest sikre måde.


Så igen. Hvilken metode her er bedst at bruge. Systemet skal både kunne bruges på mindre og større sider.

Håber der er nogle hjælpsomme sjæle derude :)

Tak på forhånd - TheYaXxE
Avatar billede arne_v Ekspert
13. marts 2014 - 15:03 #1
Jeg ville bare bruge samme tabel. Og de kan sagtens have en kolonne med tid ogsaa. Og jeg vil foreslaa minutter ikke timer.
Avatar billede Slettet bruger
25. marts 2014 - 09:16 #2
Ny tabel, da du ellers får et hav af null data, som der ikke er grund til at spilde plads på.

Den behøver ikke andet end:

fk_user_id
activation_key
use_before_time
password_changed

Du behøver ikke slette rækken.
Hvis brugeren beder om at ændre password igen, kan du bare ændre eksisterende data.
Avatar billede TheYaXxE Juniormester
16. juni 2014 - 00:47 #3
Brugte første metode (i samme tabel)
Avatar billede arne_v Ekspert
16. juni 2014 - 01:00 #4
Og du tog selv point fordi?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester