Table des matières
Contenu de la question
Solution de contournement
Maison développement back-end Golang La variable NEXTAUTH_SECRET est-elle la même que le secret backend utilisé pour générer le jeton JWT ?

La variable NEXTAUTH_SECRET est-elle la même que le secret backend utilisé pour générer le jeton JWT ?

Feb 08, 2024 pm 11:09 PM
前端应用 sessionstorage

NEXTAUTH_SECRET 变量与用于生成 JWT 令牌的后端机密相同吗?

php Editeur Apple, bonjour ! Concernant votre question, la variable NEXTAUTH_SECRET est différente du secret backend utilisé pour générer le token JWT. NEXTAUTH_SECRET est la clé utilisée dans NextAuth.js pour chiffrer le cookie de session, et le secret backend est la clé utilisée pour vérifier et signer le jeton JWT. Bien que les deux clés soient utilisées dans une certaine mesure pour sécuriser l’authentification des utilisateurs, leur rôle et la manière dont elles sont utilisées sont différents. Assurez-vous de configurer et de protéger correctement ces clés lorsque vous utilisez NextAuth.js et JWT pour garantir la sécurité de votre application. j'espère que cela vous sera utile ! Si vous avez d'autres questions, n'hésitez pas à poursuivre la consultation.

Contenu de la question

J'écris une application frontale utilisant NextJS et j'utilise l'authentification suivante pour l'authentification (e-mail, mot de passe de connexion). Mon backend est une base de code différente écrite en GoLang, donc lorsqu'un utilisateur se connecte, il envoie une requête au point de terminaison du backend Golang et renvoie un jeton JWT, qui est généré comme ceci :

config := config.GetConfig()
atClaims := jwt.MapClaims{}
atClaims["authorized"] = true
atClaims["id"] = userId
atClaims["email"] = email
atClaims["exp"] = time.Now().Add(time.Hour * 24 * time.Duration(config.LoginExpire)).Unix()

token := jwt.NewWithClaims(jwt.SigningMethodHS256, atClaims)
signedToken, err := token.SignedString([]byte(config.AppSecret))
Copier après la connexion

Mon problème est le même avec la valeur de NEXTAUTH_SECRET 这个环境变量有关,我从 Next Auth 文档中看到,正如你在 Go 中生成令牌时看到的那样,我使用这个 config.AppSecret (后端的环境变量),NEXTAUTH_SECRET 需要吗与后端的 config.AppSecret et je ne sais pas quelle est la différence.

Merci d'avance

Solution de contournement

La réponse courte est non. Les NEXTAUTH_SECRET 和 GoLang 后端中的 config.AppSecret dans Next.js n'ont pas besoin d'être identiques ; ils servent à des fins différentes dans votre pile d'applications.

NEXTAUTH_SECRET : utilisé dans Next.js pour sécuriser les jetons NextAuth, qui sont essentiels à la sécurité des sessions dans le cadre NextAuth.

Backend Secret (config.AppSecret) : utilisé dans le backend GoLang pour signer les jetons JWT, garantissant l'intégrité et l'authenticité du jeton backend.

Si vous souhaitez utiliser des jetons générés par le backend dans votre application NextJs, vous devez procéder comme suit :

  1. Store Token : stockez le jeton dans un emplacement sécurisé côté client. Les pratiques courantes incluent l'utilisation de localStoragesessionStoragecookies. Je préfère utiliser des cookies car ils sont automatiquement envoyés à chaque demande et disposent de fonctionnalités de sécurité telles que les propriétés HttpOnly et SameSite.

  2. Envoyer un jeton lors des demandes ultérieures : lorsque vous effectuez des demandes au backend, incluez généralement ce jeton dans l'en-tête d'autorisation. L'approche standard consiste à utiliser l'architecture Bearer, comme indiqué ci-dessous : Authorization: Bearer <your_token_here>.

  3. Validation du jeton : Votre backend validera ce jeton sur chaque route protégée pour authentifier les demandes. Le jeton est décodé à l'aide de la même clé (config.AppSecret) utilisée pour la signature.

En plus de cela, vous devez également gérer l'expiration des jetons, utiliser un canal https pour la transmission et mettre en œuvre une protection CSRF si vous utilisez des cookies pour stocker des jetons.

Cependant, si vous souhaitez conserver les mécanismes d'authentification front-end et back-end séparés et sécurisés, vous pouvez utiliser NEXTAUTH_SECRET 来保护 NextAuth 会话,并为 GoLang 后端使用 config.AppSecret pour signer en toute sécurité les jetons JWT dans votre application Next.js.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quels sont les avantages de la base de données MongoDB Quels sont les avantages de la base de données MongoDB Apr 07, 2024 pm 05:21 PM

La base de données MongoDB est connue pour sa flexibilité, son évolutivité et ses hautes performances. Ses avantages incluent : un modèle de données documentaires qui permet de stocker les données de manière flexible et non structurée. Évolutivité horizontale vers plusieurs serveurs via le partitionnement. Flexibilité des requêtes, prenant en charge les requêtes complexes et les opérations d’agrégation. La réplication des données et la tolérance aux pannes garantissent la redondance des données et la haute disponibilité. Prise en charge de JSON pour une intégration facile avec les applications frontales. Hautes performances pour une réponse rapide même lors du traitement de grandes quantités de données. Open source, personnalisable et gratuit à utiliser.

Nodejs peut-il écrire du front-end ? Nodejs peut-il écrire du front-end ? Apr 21, 2024 am 05:00 AM

Oui, Node.js peut être utilisé pour le développement front-end, et les principaux avantages incluent des performances élevées, un écosystème riche et une compatibilité multiplateforme. Les considérations à prendre en compte sont la courbe d’apprentissage, la prise en charge des outils et la petite taille de la communauté.

Vue est-elle front-end ou back-end ? Vue est-elle front-end ou back-end ? Apr 02, 2024 am 12:15 AM

Vue est un framework JavaScript frontal pour la création d'interfaces utilisateur, se concentrant principalement sur le développement de code côté client. Ses fonctionnalités incluent : 1. Componentisation : amélioration de la maintenabilité et de la réutilisabilité du code 2. Liaison de données réactive : l'interface utilisateur se met automatiquement à jour ; : Optimiser les performances de rendu ; 4. Gestion de l'état : Gérer l'état partagé de l'application. Vue est largement utilisé pour créer des applications à page unique, des applications mobiles, des applications de bureau et des composants Web.

La relation entre js et vue La relation entre js et vue Mar 11, 2024 pm 05:21 PM

La relation entre js et vue : 1. JS comme pierre angulaire du développement Web ; 2. L'essor de Vue.js en tant que framework front-end ; 3. La relation complémentaire entre JS et Vue ; Vue.

Comment démarrer un projet avec webstorm Comment démarrer un projet avec webstorm Apr 08, 2024 pm 02:03 PM

Les étapes pour démarrer un projet à l'aide de WebStorm sont les suivantes : Ouvrez l'IDE WebStorm, ouvrez ou créez un projet ; cliquez avec le bouton droit sur le fichier du projet et sélectionnez "Exécuter" dans la fenêtre "Configuration Exécuter/Déboguer", sélectionnez la configuration de lancement à exécuter ; utilisé pour lancer le projet ; configurer Démarrer la configuration (facultatif) ; cliquez sur le bouton « Exécuter » pour démarrer le projet si nécessaire, vous pouvez utiliser les outils de débogage de WebStorm pour déboguer le projet.

Quels sont les avantages du HTML5 Quels sont les avantages du HTML5 Apr 22, 2024 am 11:09 AM

Les principaux avantages du HTML5 sont les suivants : Balisage sémantique : transmet clairement la structure et la signification du contenu. Prise en charge multimédia : lecture native de la vidéo et de l'audio. Canvas : créez des graphiques animés et des animations. Stockage local : le client stocke les données et y accède au fil des sessions. Géolocalisation : obtenez les informations de localisation géographique de l'utilisateur. WebSockets : Connexion continue entre le navigateur et le serveur. Adapté aux mobiles : fonctionne sur une variété d’appareils. Sécurité : CSP et CORS protègent contre les cybermenaces. Facilité d’utilisation : Facile à apprendre et à utiliser. Prise en charge : prise en charge étendue de tous les principaux navigateurs et appareils.

Combinaison de Golang et de technologie front-end : découvrez comment Golang joue un rôle dans le domaine front-end Combinaison de Golang et de technologie front-end : découvrez comment Golang joue un rôle dans le domaine front-end Mar 19, 2024 pm 06:15 PM

Combinaison de Golang et de la technologie front-end : pour explorer le rôle de Golang dans le domaine front-end, des exemples de code spécifiques sont nécessaires. Avec le développement rapide d'Internet et des applications mobiles, la technologie front-end est devenue de plus en plus importante. Dans ce domaine, Golang, en tant que puissant langage de programmation back-end, peut également jouer un rôle important. Cet article explorera comment Golang est combiné avec la technologie front-end et démontrera son potentiel dans le domaine front-end à travers des exemples de code spécifiques. Le rôle de Golang dans le domaine front-end est celui d'un outil efficace, concis et facile à apprendre.

Quel rôle joue Vue dans le développement front-end ? Quel rôle joue Vue dans le développement front-end ? Apr 06, 2024 am 12:39 AM

Vue.js est un framework JavaScript progressif principalement utilisé pour simplifier le processus de développement front-end. Ses fonctions incluent : une syntaxe de modèle déclarative pour améliorer la lisibilité ; une liaison de données réactive pour synchroniser automatiquement le développement de l'interface et des composants pour améliorer la maintenabilité ; outils et écosystème pour accélérer le développement.

See all articles