Sto creando un sito web che necessita dell'autorizzazione dell'utente. È la prima volta che creo un sito Web per la pubblicazione e anche la prima volta che cerco di fare qualsiasi forma di autorizzazione. Quello che segue è il mio piano, potresti dirmi se ho dei buchi evidenti e se c'è qualcos'altro di cui dovrei essere a conoscenza. Se interessato o pertinente sto usando un nodo di riposo restful e un back-end di mysql e backbone sul front-end.
Processo di accesso:
- L'utente tenta di accedere. In questo modo viene inviato un indirizzo e-mail, una password e una chiave generata casualmente (non è stato deciso su una quantità di bit).
- Il server di autorizzazione accetta queste informazioni, crittografa l'indirizzo e-mail e la password e lo confronta con i valori nella tabella user_auth del database di autorizzazione. Se c'è una corrispondenza, crea un ID di sessione.
- Il server di autorizzazione posiziona quindi l'ID di sessione, l'indirizzo email e la chiave casuale generata dall'utente in una riga della tabella di sessione (nel database di dati a cui accede principalmente dal server di dati) e invia all'utente un ID di sessione e qualsiasi altri dati di pagina rilevanti che vengono crittografati utilizzando l'ID di sessione come chiave.
- In caso di successo, l'utente riceve l'id di sessione e decrittografa i dati aggiuntivi e tutti i dati futuri utilizzando l'id di sessione.
- Ad ogni azione eseguita dall'utente, il client invierà l'indirizzo e-mail e l'ID di sessione crittografati con la chiave generata a caso originale che è stata inviata al server di dati, e se l'ID di sessione e l'indirizzo e-mail corrispondono, i dati vengono decrittografati utilizzando la chiave, e quindi si tenta di elaborare i dati.
Naturalmente cercherò anche di disinfettare tutti i dati prima che venga generata una query sql, ci saranno anche convalida del modulo live e validazione del modello backbone. L'utente mysql che utilizzeranno i server nodejs non avrà le autorizzazioni di eliminazione che saranno prese in considerazione tramite tag e un daemon in esecuzione sul back-end.
Per creare un account:
- L'utente invierà un indirizzo email, una password, il nome, il cognome al server di autorizzazione.
- Il server delle autorizzazioni lo posizionerà insieme a una data / ora in una tabella temp_user e una email ben formulata verrà composta con un ID di sessione incorporato nell'URL.
- L'utente farà clic sul link nell'e-mail a cui verrà indirizzato a "la pagina del tuo account è stata convalidata" o qualcosa del genere. Facendo clic sul collegamento salverà il valore dell'ID di sessione nel codice del client e creerà una chiave generata a caso che verrà inviata al server. In caso di successo mostrerà effettivamente all'utente la pagina.
- Sul lato server il server delle autorizzazioni inserisce il nome utente e la password, crittografati, nella tabella user_auth del database delle autorizzazioni, inserisce il nome e il cognome nella tabella utente nel database dei dati e quindi elimina (l'unica tabella avrà le autorizzazioni di eliminazione per) la riga corrispondente nella tabella temp_user.
- Ora il client e il server devono trovarsi nella stessa pagina del primo scenario.
se in qualsiasi momento l'id della sessione è nullo o non corrisponde all'utente verrà chiesto di accedere nuovamente, il processo ricomincerà da capo.
C'è qualcosa che mi manca?