Update: login to email

This commit is contained in:
Yûki VACHOT 2021-12-06 05:38:43 +01:00
parent 9ab394244b
commit 2a93962432

View file

@ -12,11 +12,11 @@ const JWTRS256_PRIVATE_KEY = Buffer.from(process.env.JWTRS256_PRIVATE_KEY, 'base
const JWTRS256_PUBLIC_KEY = Buffer.from(process.env.JWTRS256_PUBLIC_KEY, 'base64').toString('utf-8'); const JWTRS256_PUBLIC_KEY = Buffer.from(process.env.JWTRS256_PUBLIC_KEY, 'base64').toString('utf-8');
function createSessionJWT (id, login, role) { function createSessionJWT (id, email, role) {
return sessionJWTConfig.sign( return sessionJWTConfig.sign(
{ {
id: id, id: id,
login: login, email: email,
role: role, role: role,
midExp: Math.floor(Date.now() / 1000) + 1800 midExp: Math.floor(Date.now() / 1000) + 1800
}, },
@ -31,21 +31,21 @@ function createSessionJWT (id, login, role) {
function createSessionCookie(req, res, payload) { function createSessionCookie(req, res, payload) {
let jwtToken; let jwtToken;
if (typeof payload.id !== 'undefined' && if (typeof payload.id !== 'undefined' &&
typeof payload.login !== 'undefined' && typeof payload.email !== 'undefined' &&
typeof payload.role !== 'undefined' && typeof payload.role !== 'undefined' &&
typeof payload.midExp !== 'undefined' && typeof payload.midExp !== 'undefined' &&
(Math.floor(Date.now() / 1000) <= payload.midExp)) { (Math.floor(Date.now() / 1000) <= payload.midExp)) {
jwtToken = req.headers.cookie; jwtToken = req.headers.cookie;
} }
else { else {
jwtToken = createSessionJWT(payload.id, payload.login, payload.role); jwtToken = createSessionJWT(payload.id, payload.email, payload.role);
} }
res.cookie('SESSIONID', jwtToken, {httpOnly:true, secure:false}); res.cookie('SESSIONID', jwtToken, {httpOnly:true, secure:false});
} }
function decodeSessionCookie(sessionid) { function decodeSessionCookie(sessionid) {
if (typeof sessionid === 'undefined') { if (typeof sessionid === 'undefined') {
return {id: -1, login: -1, role: -1}; return {id: -1, email: -1, role: -1};
} }
try { try {
const token = sessionJWTConfig.verify( const token = sessionJWTConfig.verify(
@ -55,7 +55,7 @@ function decodeSessionCookie(sessionid) {
return {token: token}; return {token: token};
} }
catch (err) { catch (err) {
return {id: -1, login: -1, role: -1}; return {id: -1, email: -1, role: -1};
} }
} }
@ -79,18 +79,18 @@ function checkLogin(req, res, role=null){
if(typeof req.cookies !== 'undefined'){ if(typeof req.cookies !== 'undefined'){
const session = getSession(req.cookies.SESSIONID); const session = getSession(req.cookies.SESSIONID);
const token = getToken(session); const token = getToken(session);
if(token.login === 'undefined' || token.login === -1){ if(token.email === 'undefined' || token.email === -1){
return sendError(res, 500, -1, "User not authenticated."); return sendError(res, 500, 102, "User not authenticated.");
} else { } else {
if(role === null){ if(role === null){
return token; return token;
} else { } else {
if(token.role !== 'undefined' && if(token.role !== 'undefined' &&
((Array.isArray(role) && role.includes(token.role)) || ((Array.isArray(role) && role.includes(token.role)) ||
( typeof role === 'object' && token.role.permission >= role.permission))){ ( typeof role === 'object' && token.role.permission !== 'undefined' && token.role.permission >= role.permission && token.role.isAccepted === true))){
return token; return token;
} else { } else {
return sendError(res, 500, -1, "User doesn't have permission.", token); return sendError(res, 500, 106, "User doesn't have permission.", token);
} }
} }
} }