Quelqu'un peut-il me décrire étape par étape le fonctionnement de l'authentification par cookie? Je n'ai jamais rien fait, ni d'authentification ni de cookies. Qu'est-ce que le navigateur doit faire? Que doit faire le serveur? Dans quel ordre? Comment pouvons-nous garder les choses en sécurité?
J'ai lu sur différents types d'authentification et sur les cookies, mais j'aimerais une description de base sur la façon d'utiliser les deux ensemble. J'ai seulement lu qu'ils étaient souvent utilisés ensemble, mais ne trouvaient pas de description de la manière.
Un cookie est fondamentalement juste un élément dans 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 sur un site Web, votre navigateur inclut les cookies dans la demande et le serveur hôte vérifie les cookies. Donc, l'authentification peut 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 requêtes. Le navigateur ajoutera ensuite le cookie à la réception de la réponse.
Il existe différentes options que vous pouvez configurer pour le serveur de cookies, telles que les délais d'expiration ou le cryptage. Un cookie crypté est souvent appelé cookie signé. Fondamentalement, le serveur chiffre la clé et la valeur dans l'élément de dictionnaire, de sorte que seul le serveur peut utiliser les informations. Alors, le cookie serait sécurisé.
Un navigateur enregistre les cookies définis par le serveur. Dans l'en-tête HTTP de chaque requête du navigateur adressée à ce serveur, les cookies seront ajoutés. Il ajoutera uniquement des cookies pour les domaines qui les ont configurés. Example.com peut définir un cookie et également ajouter des options dans l'en-tête HTTP afin que les navigateurs l'envoient à des sous-domaines, comme sub.example.com. Il serait inacceptable qu'un navigateur envoie des cookies à un autre domaine.
Je me rends compte que cela fait des années en retard, mais je pensais pouvoir développer la réponse de Conor et ajouter un peu plus à la discussion.
Quelqu'un peut-il me décrire étape par étape le fonctionnement de l'authentification par cookie? Je n'ai jamais rien fait, ni d'authentification ni de cookies. Qu'est-ce que le navigateur doit faire? Qu'est-ce que le serveur doit faire? Dans quel ordre? Comment pouvons-nous garder les choses en sécurité?
É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 manière, 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
Votre utilisateur se connecte à présent. Il/elle fournit son nom d'utilisateur/mot de passe et, à nouveau, il est envoyé sous forme de 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 précédemment haché de la base de données. Si cela ne fonctionne pas, nous pouvons leur refuser l'accès par en envoyant un code d'état 401 et en mettant fin à la demande .
Étape 5: Serveur> Générer un jeton d'accès
Si tout se vérifie, 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:
Désormais, les cookies seront attachés à chaque requête (et réponse) faite entre le client et le serveur.
Étape 6: Client> Demandes de page
De retour côté client, nous sommes maintenant connectés. Chaque fois que le client demande une page nécessitant une autorisation (c’est-à-dire qu’il doit être connecté), le serveur obtient le jeton d’accès du cookie et le compare à celui indiqué. dans la base de données associée à cet utilisateur. Si cela fonctionne, l'accès est accordé.
Cela devrait vous aider à démarrer. Assurez-vous d'effacer les cookies lors de la déconnexion!
authentification par cookie
L’authentification basée sur les cookies fonctionne normalement dans ces 4 étapes-
Le navigateur soumettra cet identifiant de session à chaque requête ultérieure. L'identifiant de session sera 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 à la fois côté client et côté serveur.