Pour 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 qui implique une authentification ou des cookies. Que doit faire le navigateur ? Que doit faire le serveur ? Dans quel ordre ? Comment sécuriser les choses ?
Étape 1 : Client > S'inscrire
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 > Inscription à la manutention
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 de l'utilisateur
Maintenant votre utilisateur se connecte. Il fournit son nom d'utilisateur et son mot de passe et, une fois encore, ces informations sont envoyées au serveur sous forme de requête HTTP.
Étape 4 : Serveur > Validation de la connexion
Le serveur recherche le nom d'utilisateur dans la base de données, chiffre le mot de passe de connexion fourni et le compare au mot de passe précédemment chiffré dans la base de données. S'il n'y a pas de correspondance, nous pouvons lui refuser l'accès en envoyer un code d'état 401 et mettre fin à la demande .
Étape 5 : Serveur > Génération du 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 dans le serveur, nous faisons deux choses avec le jeton d'accès :
- Le stocker dans la base de données associée à cet utilisateur
- Attachez-le à un cookie de réponse qui sera renvoyé au client. Veillez à 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 pages
De retour du côté client, nous sommes maintenant connectés. Chaque fois que le client demande une page qui nécessite une autorisation (c'est-à-dire qu'il doit être connecté), le serveur obtient le jeton d'accès du cookie et le compare à celui de la base de données associé à cet utilisateur. Si la comparaison est positive, l'accès est accordé.
Cela devrait vous permettre de commencer. N'oubliez pas d'effacer les cookies lorsque vous vous déconnectez !