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?
J'ai lu sur différents types d'authentification et sur les cookies, mais je voudrais une description de base de la façon d'utiliser les deux ensemble.J'ai seulement lu qu'ils sont souvent utilisés ensemble, mais je n'ai pas pu trouver de description de la façon.
authentication
cookies
browser
Mastid
la source
la source
Réponses:
Un cookie est simplement un élément d'un dictionnaire. Chaque élément a une clé et une valeur. Pour l'authentification, la clé pourrait être quelque chose comme «nom d'utilisateur» et la valeur serait le nom d'utilisateur. Chaque fois que vous faites une demande à un site Web, votre navigateur inclura les cookies dans la demande, et le serveur hôte vérifiera les cookies. L'authentification peut donc se faire automatiquement comme ça.
Pour définir un cookie, il vous suffit de l'ajouter à la réponse que le serveur renvoie après les demandes. Le navigateur ajoutera alors le cookie dès réception de la réponse.
Il existe différentes options que vous pouvez configurer côté serveur de cookies, comme les délais d'expiration ou le chiffrement. Un cookie crypté est souvent appelé cookie signé. Fondamentalement, le serveur crypte la clé et la valeur dans l'élément de dictionnaire, de sorte que seul le serveur peut utiliser les informations. Ainsi, le cookie serait sécurisé.
Un navigateur enregistrera les cookies définis par le serveur. Dans l'en-tête HTTP de chaque demande que le navigateur fait à ce serveur, il ajoutera les cookies. Il n'ajoutera que des cookies pour les domaines qui les ont définis. Example.com peut définir un cookie et également ajouter des options dans l'en-tête HTTP pour que les navigateurs renvoient le cookie vers des sous-domaines, comme sub.example.com. Il serait inacceptable qu'un navigateur envoie des cookies vers un autre domaine.
la source
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.
É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:
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!
la source
Authentification basée sur les cookies
L'authentification basée sur les cookies fonctionne normalement dans ces 4 étapes-
Le navigateur soumettra cet ID de session à chaque demande ultérieure, l'ID de session est vérifié par rapport à la base de données, sur la base de cet identifiant de session, le site Web identifiera la session appartenant à quel client, puis donnera accès à la demande.
Une fois qu'un utilisateur se déconnecte de l'application, la session est détruite côté client et côté serveur.
la source