Nuova logica di registrazione utente [chiusa]

0

Sto scrivendo un'applicazione di registrazione utente in PHP come parte del mio processo di apprendimento. Ho scritto le regole generali che il mio codice dovrebbe seguire. Per favore fatemi sapere cosa ne pensate voi ragazzi.

  1. Avere un modulo con l'indirizzo email e la password.

  2. Genera 2 token casuali da aggiungere all'URL per convalidare l'e-mail e completare la registrazione. Invia un e-mail utente con gli URL. Utilizza il primo token per continuare la registrazione e il secondo token per annullare (Nel caso in cui la richiesta di registrazione non sia stata richiesta).

  3. A questo punto, nella tabella del database, gestisco una tabella con 6 colonne: email, password, register_token, cancel_register_token, contatore, Timer.

  4. Quando l'utente fa clic sul collegamento per continuare con il processo di registrazione, richiede all'utente la password. Se l'utente ha inavvertitamente inserito un indirizzo email errato, quindi che qualcun altro ovviamente non conosce la password e non può continuare con la registrazione.

  5. Se l'utente che ha già un'e-mail attiva nel db, in attesa di registrazione, desidera che venga nuovamente inviata una email di attivazione (forse qualcun altro ha registrato l'e-mail a suo nome, non richiesto e non ha la password per continuare), quindi crea altri 2 token casuali, cancellando il primo set dalla tabella e mantenendo un contatore, aumentando il contatore ogni volta che un nuovo set di token è generato contro un'email. Quando il contatore raggiunge il massimo, non accettare più richieste. Forse un massimo di 5 richieste di questo tipo e non di più.

  6. Mantieni vivo il link del registro per 1 giorno se non ci sono attività. Usa la colonna del timer per lo stesso.

posta user1720897 14.04.2014 - 17:56
fonte

1 risposta

2

Sei sulla buona strada per un'implementazione di successo di un processo di registrazione degli utenti. Tuttavia, ci sono ancora alcune incognite che non hai affrontato, che possono influire sul risultato desiderato.

  1. Come stai monitorando che l'account dell'utente è stato attivato? Sembra che una volta che l'utente fa clic sul link per attivarlo, non è stato registrato che è stato attivato nel tuo database, in quanto non hai un set di flag "attivi / ated".
  2. La password verrà inserita nel database, corretta? Non hai detto in alcun modo nella tua domanda, ma è qualcosa a cui prestare molta attenzione. Lasciare una password in testo semplice nel database è un grande no-no.
  3. Non so se tenere un contatore del numero di token creati ti serva molto di uno scopo. Se l'utente genera più di 5 (secondo il tuo esempio), hai intenzione di dire loro "Scusa, sfortuna, hai richiesto l'attivazione troppe volte"? Sono con voi a generare un nuovo set di token e a spazzare via i vecchi ogni volta che ne richiedono uno, ma non credo che sia molto utile limitarli (a meno che non vogliate impedire loro di essere in grado di prevedere e determina il tuo algoritmo di generazione di token - nel qual caso devi cercare di generare un algoritmo migliore)
  4. Il tuo timer è probabilmente una scommessa sicura. Potresti volerlo cambiare per essere un "token_generation_datetime" o qualcosa invece, piuttosto che un "timer". In questo modo puoi usarlo di più per quello che è. Penso a un timer come valore che dimostri il tempo trascorso dall'inizio dell'attività o il tempo residuo. Nel tuo caso, poiché i dati in quella colonna sono statici in base alla data di generazione dei token, utilizzerei un nome di colonna diverso anziché "timer".
  5. Non sono un grande fan di dover reinserire la mia password quando clicco su un link di attivazione con hash nel mio account di posta elettronica. Il fatto di aver ricevuto l'e-mail nel mio account e-mail è una verifica sufficiente per la mia e-mail valida. Non avrei dovuto reinserire nuovamente la mia password solo per convalidare il mio indirizzo email.

Oltre a questi punti, sei sulla strada giusta con un processo di registrazione degli utenti. Come sottolineato da @gnat, tuttavia, è necessario dare una visione più ampia dell'immagine e fornire esattamente ciò che si sta tentando di fare. "La logica aziendale è corretta?" è difficile rispondere, senza comprendere la portata e l'obiettivo finale di ciò che stai cercando di realizzare.

    
risposta data 14.04.2014 - 18:26
fonte

Leggi altre domande sui tag