NextAuth / Auth.js Schéma de base de données expliqué
NextAuth / Auth.js Database Schema Explained
La version courte NextAuth (maintenant Auth.js) crée 4 tables dans votre base de données : , , et . Les et les tables ont une relation individuelle via . Les sessions sont reliées aux utilisateurs via . Les jetons de vérification sont de courte durée et auto-nettoyants. Les 4 tableaux utilisateurs Type de colonne Ce que cela signifie texte / UUID Clé primaire. Généré par NextAuth. texte Afficher le nom du fournisseur OAuth (Google, GitHub, etc.) texte Email de l'utilisateur. Peut être nul si le fournisseur ne le partage pas. timestamp Lorsque le courriel a été vérifié. Null si jamais vérifié. texte URL d'image de profil du fournisseur. timestamp Lorsque l'utilisateur s'est connecté pour la première fois. timestamp Dernière synchronisation du profil depuis le fournisseur. comptes Ce tableau relie un utilisateur à un fournisseur OAuth. Un utilisateur peut avoir plusieurs comptes (par exemple, Google + GitHub). Type de colonne Ce que cela signifie texte / UUID...
La version courte NextAuth (maintenant Auth.js) crée 4 tables dans votre base de données : , , et . Les et les tables ont une relation individuelle via . Les sessions sont reliées aux utilisateurs via . Les jetons de vérification sont de courte durée et auto-nettoyants. Les 4 tableaux utilisateurs Type de colonne Ce que cela signifie texte / UUID Clé primaire. Généré par NextAuth. texte Afficher le nom du fournisseur OAuth (Google, GitHub, etc.) texte Email de l'utilisateur. Peut être nul si le fournisseur ne le partage pas. timestamp Lorsque le courriel a été vérifié. Null si jamais vérifié. texte URL d'image de profil du fournisseur. timestamp Lorsque l'utilisateur s'est connecté pour la première fois. timestamp Dernière synchronisation du profil depuis le fournisseur. comptes Ce tableau relie un utilisateur à un fournisseur OAuth. Un utilisateur peut avoir plusieurs comptes (par exemple, Google + GitHub). Type de colonne Ce que cela signifie texte / UUID Clé primaire. texte Clé étrangère → . texte Toujours ou . texte , , , etc. texte L'identifiant unique du fournisseur pour cet utilisateur. texte OAuth rafraîchi token (encrypté dans la production). token d'accès au texte OAuth (encrypté dans la production). entier Quand le jeton d'accès expire (Unix timestamp). text Habituellement . text Autorisations accordées par le fournisseur. text Identifiant OIDC (si vous utilisez OIDC). texte État de session spécifique au fournisseur. sessions Sessions actives pour chaque utilisateur. NextAuth crée une nouvelle ligne ici sur chaque connexion. Type de colonne Ce que cela signifie texte / UUID Clé primaire. texte Le jeton de session stocké dans le cookie de l'utilisateur. texte Clé étrangère → . horodatage Lorsque cette session expire. jetons de vérification Jetons à courte durée de vie pour la vérification par courriel, la réinitialisation du mot de passe, etc. Les anciens jetons auto-nettoyants sont supprimés automatiquement. Type de colonne Ce que cela signifie text Email ou user ID le jeton est pour. texte La valeur réelle du jeton. timestamp Lorsque ce jeton expire. Comment connecter un utilisateur → un ou plusieurs comptes (Google, GitHub, etc.) Un utilisateur → de nombreuses sessions (différents appareils / navigateurs) Les jetons de vérification sont temporaires et n'ont pas de clé étrangère Que changer Ajoutez une colonne à si vous avez besoin d'un contrôle d'accès basé sur le rôle. Ajoutez une colonne à si vous utilisez SMS auth. Encrypter et dans la production NextAuth ne fait pas cela par défaut. Que laisser seul Ne modifiez pas la table qu'elle gère automatiquement. Ne changez pas le format, c'est un JWT signé. N'ajoutez pas d'index à moins de l'interroger directement (c'est déjà unique). FAQ Est-ce que NextAuth stocke des mots de passe? NextAuth est une première bibliothèque. Il ne gère pas les mots de passe. Si vous avez besoin d'email/password auth, utilisez avec bcrypt, ou utilisez un service comme Greffier ou Lucia. Comment puis-je voir ce qu'il y a dans mes tables NextAuth ? Utilisez dbdiagramr coller votre chaîne de connexion et obtenir un schéma visuel de vos tables NextAuth en quelques secondes. Puis-je ajouter des champs personnalisés à la table des utilisateurs ? Oui. Ajouter des colonnes directement au tableau. NextAuth ignorera les colonnes qu'il ne connaît pas, vous pouvez donc ajouter en toute sécurité , , , etc. Que se passe-t-il lorsqu'un utilisateur supprime son compte? NextAuth ne supprime pas de cascade par défaut. Vous devez supprimer manuellement de , , et . Ou ajoutez à vos contraintes clés étrangères. Auth.j est-il le même que NextAuth ? Auth.js est la version rebaptisée de NextAuth. Le schéma de base de données est identique. Si vous êtes sur NextAuth v4, vous utilisez les mêmes tables.