Discussions

Fonctionnement du JWT NextAuth

Image

Bonjour Louis-Nicolas,

 

Si j'ai bien compris ce qui va déclencher l'execution du code situé dans [...nextauth] est la fonction signIn située dans le formulaire de connexion.

 

Quand tu écris 

return {
email: utilisateur.email,
.....
.....

tu dis que ce code retourné est  sotcké dans le token mongodb.  Je ne saisi pas cette partie comment ça fonctionne....Il est stocké dans une variable déja prédéfinie (qu'on a pas besoin de créer)  par la librairie nextjs ?   (une variable qui s'appelerait user  ? )

 

5 réponses
Image
Maxime Delville
Le 11/04/2023 à 13:57

Je sais pas si je réponds à ta question, mais en gros c'est stocké avec des cookies sur ton navigateur

Image
Jean-luc Crobeddu
Le 12/04/2023 à 08:16

J'ai du mal avec cette partie du cours car  Louis-Nicolas nous parle de JSON web token et de cookies mais en fait il s'agit de deux systèmes d'authentifications différents :-). Du coup je suis un peu perdu. Je verrai ce qu'il répond à mes autres questions.
Dans le cours il dit que le cookie est crée automatiquement lorsque l'on installe next-auth. D'apres ce que je comprends ce cookie contient déja un attribut user qui est vide et quand on fait notre return ca vient remplir les champs du user qui se trouve dans le cookie

return {
          email: utilisateur.email,
          name: utilisateur.pseudo, 
etc....}
Image
Louis-Nicolas Leuillet
Le 12/04/2023 à 17:17

Alors oui ce sont deux systèmes d'authentification différents, c'est sûr ! Mais je ne dis pas que c'est la même chose haha.

En fait le JWT - json web token - est un... cookie ! Qui contient ce qu'on appelle une "clé publique". Il faut comprendre que c'est une grosse suite de chiffres. Tout ça correspond à des informations qui permettent d'identifier la personne pour le connecter sans lui demander son mot de passe.

 

Si la personne veut se faire passer pour une autre personne en modifiant le JWT, alors la suite de chiffres devient invalide car on vérifie en permanence si elle a été "trafiquée" grâce à une clé secrète (elle, on ne la donne surtout pas à l'utilisateur et c'est Next Auth qui gère tout ça pour nous).

 

Le cookie est effectivement créé automatiquement par Next Auth quand on se connecte grâce à elle (la librairie Next Auth).

Meilleure réponse
Image
Jean-luc Crobeddu
Le 13/04/2023 à 08:55

donc en fait il y a plusieurs cookies ? celui créer lors de l'installation de next auth et celui généré par JWT ?

Image
Louis-Nicolas Leuillet
Le 13/04/2023 à 11:29

Oui il y a les cookies de protection type csrf et le JWT qui est généré si l'utilisateur se connecte

Image
Inscrivez-vous ou connectez-vous pour participer à la discussion.
Discussion résolue

Informations

Créée le 11 avril 2023 10:17
Dernière modification le 12 avril 2023 17:19
Dernière activité le 13 avril 2023 11:29