Je me rends compte que c'est des années en retard, mais j'ai pensé que je pourrais développer la réponse de Conor et ajouter un peu plus à la discussion.
Quelqu'un peut-il me donner une description étape par étape du fonctionnement de l'authentification basée sur les cookies? Je n'ai jamais rien fait impliquant l'authentification ou les cookies. Que doit faire le navigateur? Que doit faire le serveur? Dans quel ordre? Comment sécurisons-nous les choses?
Étape 1: Client> Inscription
Avant toute chose, l'utilisateur doit s'inscrire. Le client envoie une requête HTTP au serveur contenant son nom d'utilisateur et son mot de passe.
Étape 2: Serveur> Gestion de l'inscription
Le serveur reçoit cette demande et hache le mot de passe avant de stocker le nom d'utilisateur et le mot de passe dans votre base de données. De cette façon, si quelqu'un accède à votre base de données, il ne verra pas les mots de passe réels de vos utilisateurs.
Étape 3: Client> Connexion utilisateur
Maintenant, votre utilisateur se connecte. Il / elle fournit son nom d'utilisateur / mot de passe et encore une fois, cela est publié comme une requête HTTP au serveur.
Étape 4: Serveur> Validation de la connexion
Le serveur recherche le nom d'utilisateur dans la base de données, hache le mot de passe de connexion fourni et le compare au mot de passe haché précédemment dans la base de données. S'il ne vérifie pas, nous pouvons leur refuser l'accès en envoyant un code d'état 401 et en mettant fin à la demande .
Étape 5: Serveur> Génération d'un jeton d'accès
Si tout se passe bien, nous allons créer un jeton d'accès, qui identifie de manière unique la session de l'utilisateur. Toujours sur le serveur, nous faisons deux choses avec le jeton d'accès:
- Stockez-le dans la base de données associée à cet utilisateur
- Attachez-le à un cookie de réponse à retourner au client. Assurez-vous de définir une date / heure d'expiration pour limiter la session de l'utilisateur
Désormais, les cookies seront attachés à chaque demande (et réponse) faite entre le client et le serveur.
Étape 6: Client> Faire des demandes de page
De nouveau côté client, nous sommes maintenant connectés. Chaque fois que le client fait une demande de page nécessitant une autorisation (c'est-à-dire qu'il doit être connecté), le serveur obtient le jeton d'accès à partir du cookie et le vérifie par rapport à celui dans la base de données associée à cet utilisateur. S'il vérifie, l'accès est accordé.
Cela devrait vous aider à démarrer. Assurez-vous d'effacer les cookies lors de la déconnexion!