From 34070afc0edef5827d66e3e9812546490a8f7c5f Mon Sep 17 00:00:00 2001 From: NyxiumYuuki Date: Sat, 29 May 2021 14:41:35 +0200 Subject: [PATCH] Auth is now working with keys --- backend/service-authentication/auth.js | 17 +++--------- backend/service-message/auth.js | 38 ++++++++++++++------------ 2 files changed, 24 insertions(+), 31 deletions(-) diff --git a/backend/service-authentication/auth.js b/backend/service-authentication/auth.js index c47a3ef..04e0f6d 100644 --- a/backend/service-authentication/auth.js +++ b/backend/service-authentication/auth.js @@ -1,30 +1,21 @@ 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); +function getSession (sessionid,res) { + return sessionJwt.decodeSessionCookie(sessionid,res); } 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) { +function getUsername(session) { if (typeof session.username === 'undefined') return -1; return session.username; } -module.exports.getUserId = getUserId; +module.exports.getUserId = getUsername; async function authenticate(req, res) { const login = req.body.login; diff --git a/backend/service-message/auth.js b/backend/service-message/auth.js index d198a41..2cd2d5a 100644 --- a/backend/service-message/auth.js +++ b/backend/service-message/auth.js @@ -1,26 +1,28 @@ -const sessionJwt = require ('./sessionJWT'); +const request = require('request'); -// 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); +function getSession (req, callback) { + if(typeof req.headers.cookie !== 'undefined'){ + request.post({ + headers: {'content-type' : 'application/x-www-form-urlencoded'}, + url: 'http://127.0.0.1:3000/verify:token', + body: 'sessionid='+req.headers.cookie.replace('SESSIONID=','') + },function (error, response, body) { + const bodyJson = JSON.parse(body); + if (bodyJson && bodyJson.status && bodyJson.data) { + if (bodyJson.status === 'ok') { + return callback(bodyJson.data.token); + } else { + return callback(bodyJson.data.reason); + } + } + }); + } + return callback(undefined); } 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 getUsername(session) { - if (typeof session.username === 'undefined') return -1; + if (typeof session === 'undefined' || typeof session.username === 'undefined') return -1; return session.username; } module.exports.getUsername = getUsername;