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