44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
const sessionJwt = require ('./sessionJWT');
|
|
const queries = require('./mongodbQueries');
|
|
|
|
// ici, on récupère le contenu du cookie de session JWT.
|
|
// celui-ci contient le userId mais également des informations
|
|
// concernant sa date d'expiration.
|
|
function getSession (req) {
|
|
return sessionJwt.decodeSessionCookie(req);
|
|
}
|
|
module.exports.getSession = getSession;
|
|
|
|
// cette fonction ajoute le cookie de session au headers du
|
|
// message qui sera renvoyé à Angular. Si le cookie actuel
|
|
// est "vieux", on en recrée ici un nouveau.
|
|
function setSessionCookie (req, res, session) {
|
|
sessionJwt.createSessionCookie(req, res, session);
|
|
}
|
|
module.exports.setSessionCookie = setSessionCookie;
|
|
|
|
// fonction pour récupérer le userId provenant du cookie
|
|
// de session. Si ce dernier n'existe pas, on renvoie
|
|
// l'ID -1.
|
|
function getUserId(session) {
|
|
if (typeof session.userId === 'undefined') return -1;
|
|
return session.userId;
|
|
}
|
|
module.exports.getUserId = getUserId;
|
|
|
|
async function authenticate(req, res) {
|
|
const login = req.body.login;
|
|
const password = req.body.password;
|
|
|
|
const userList = await queries.checkLoginQuery(login, password);
|
|
if (userList !== undefined && userList[0] !== undefined && userList[0].idUtilisateur > 0){
|
|
setSessionCookie (req, res, { userId: userList[0].idUtilisateur });
|
|
// return userList[0].idUtilisateur;
|
|
return getUserId(getSession(req));
|
|
} else {
|
|
setSessionCookie (req, res, {userId: -1});
|
|
return -1;
|
|
}
|
|
|
|
}
|
|
module.exports.authenticate = authenticate;
|