2 votes

Stocker la session dans le navigateur du client en utilisant node.js brut et cookie sans express

J'essaie de stocker la session du client en utilisant node.js brut sans express.

Lorsqu'un utilisateur se connecte, je dispose de son nom d'utilisateur et de son mot de passe. Maintenant, comment stocker une session dans le navigateur du client à l'aide d'un cookie. Et comment identifier l'utilisateur lorsqu'il rafraîchit l'onglet ou va sur un autre lien. client-sessions car je veux comprendre l'approche.

Toute aide sera appréciée.

3voto

Tout d'abord, je vous suggère de regarder tout sur l'authentification en NodeJS Il explique très bien les cookies dans une partie.

Vous devez fournir au navigateur des données à conserver pour qu'il puisse les utiliser ultérieurement, à savoir cookies . Le navigateur utilise cette données pour indiquer au serveur le type de authentifications il a traité avant pour le serveur et l'utilisateur de procéder sans répétition.

Dans node.js, l'utilisation de client-sessions vous pouvez définir un cookie en appelant

app.post('/login', function(req,res){
 User.findOne({password: req.body.userPassword}, function(err, user){

 if(user){
    req.session.user = user; //here you are setting the cookie for the client,
  }
})
})

Vous pouvez également spécifier le type de cookie que vous souhaitez définir en lui ajoutant simplement une propriété

 req.session.userEmail = user.email;

Voyons maintenant comment le serveur utilise l'authentification

app.get('/someUrl', function(req,res){

  if(req.session.user){
   console.log("user exists!");
  }

})

Vous pouvez vérifier ce que le client vous envoie en utilisant session propriété de req objet => req.session

Pour le lier à une base de données, vous devez procéder comme suit,

  if(req.session.user){
     User.findOne({email: req.session.user.email}, func...)
  }

Ainsi, à chaque requête envoyée par le client, cette procédure est utilisée par le serveur pour identifier les cookies et rendre l'application web conviviale sans répétition.

C'est comme donner tous étudiant et ID dans une école d'authentification.

Seguridad

Pour des raisons de sécurité, le module de nœud cookie-sessions crypter les données automatiquement lorsque nous ajoutons secret dans l'attribut app.use() fonction. Voir aussi en utilisant secret dans le module client-sessions

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X