Mi rendo conto che è in ritardo di anni, ma ho pensato di poter ampliare la risposta di Conor e aggiungere un po 'di più alla discussione.
Qualcuno può darmi una descrizione dettagliata di come funziona l'autenticazione basata su cookie? Non ho mai fatto nulla che implichi né autenticazione né cookie. Cosa deve fare il browser? Cosa deve fare il server? In quale ordine? Come proteggiamo le cose?
Passaggio 1: Client> Iscrizione
Prima di ogni altra cosa, l'utente deve registrarsi. Il client invia una richiesta HTTP al server contenente il proprio nome utente e password.
Passaggio 2: Server> Gestione iscrizione
Il server riceve questa richiesta e esegue l'hashing della password prima di memorizzare il nome utente e la password nel database. In questo modo, se qualcuno accede al tuo database, non vedrà le password effettive degli utenti.
Passaggio 3: Client> Accesso utente
Ora il tuo utente accede. Fornisce il suo nome utente / password e, di nuovo, questo viene pubblicato come richiesta HTTP sul server.
Passaggio 4: Server> Convalida dell'accesso
Il server cerca il nome utente nel database, esegue l'hashing della password di accesso fornita e la confronta con la password con hash precedente nel database. In caso contrario, potremmo negare loro l'accesso inviando un codice di stato 401 e terminando la richiesta .
Passaggio 5: Server> Generazione del token di accesso
Se tutto è andato a buon fine, creeremo un token di accesso, che identifica in modo univoco la sessione dell'utente. Sempre nel server, facciamo due cose con il token di accesso:
- Archiviarlo nel database associato a quell'utente
- Allegalo a un cookie di risposta da restituire al client. Assicurati di impostare una data / ora di scadenza per limitare la sessione dell'utente
D'ora in poi, i cookie saranno allegati a ogni richiesta (e risposta) fatta tra il client e il server.
Passaggio 6: Client> Esecuzione di richieste di pagina
Di nuovo sul lato client, siamo ora connessi. Ogni volta che il client effettua una richiesta per una pagina che richiede l'autorizzazione (cioè devono essere connessi), il server ottiene il token di accesso dal cookie e lo confronta con quello nel database associato a quell'utente. Se si verifica, l'accesso è concesso.
Questo dovrebbe farti cominciare. Assicurati di cancellare i cookie al logout!