- fix: nModified è stato sostituito con modifiedCount
- .ok con .acknowledged - coretto la chiamata per il REFRESH TOKEN !
This commit is contained in:
@@ -11,256 +11,58 @@ const auth_default = (req, res, next) => {
|
||||
|
||||
};
|
||||
|
||||
const authenticate = async (req, res, next) => {
|
||||
const token = req.header('x-auth');
|
||||
//const refreshToken = req.header('x-refrtok');
|
||||
|
||||
// console.log('authenticate... ');
|
||||
|
||||
let noaut = false;
|
||||
|
||||
if (req.body.hasOwnProperty('noaut')) {
|
||||
noaut = req.body.noaut;
|
||||
}
|
||||
|
||||
if (noaut) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
|
||||
const access = 'auth';
|
||||
|
||||
//const idapp = getIdApp(req);
|
||||
|
||||
try {
|
||||
const ris = await User.findByToken(token, access, true, false);
|
||||
if (ris && ris.user && !!ris.user.deleted) {
|
||||
if (ris.user.deleted)
|
||||
ris.user = null;
|
||||
}
|
||||
|
||||
if (ris.code === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) {
|
||||
return res.status(server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED).send();
|
||||
}
|
||||
|
||||
if (!ris.user) {
|
||||
return res.status(server_constants.RIS_CODE_HTTP_INVALID_TOKEN).send();
|
||||
}
|
||||
|
||||
if (!!ris.user) {
|
||||
// crea una funzione per aggiornare il lasttimeonline e useragent
|
||||
// Save last time online
|
||||
const myuser = await User.updateLastTimeAndUserAgent(ris.user._id, req.get('User-Agent'));
|
||||
req.user = myuser;
|
||||
req.token = token;
|
||||
// req.refreshToken = refreshToken;
|
||||
req.access = access;
|
||||
|
||||
next(); // Esegui il codice successivo
|
||||
}
|
||||
} catch (e) {
|
||||
tools.mylog("ERR authenticate invalid Token =", e);
|
||||
if (e === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) {
|
||||
return res.status(server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED).send();
|
||||
}
|
||||
res.status(server_constants.RIS_CODE_HTTP_INVALID_TOKEN).send();
|
||||
}
|
||||
};
|
||||
|
||||
const authenticate_withUser = async (req, res, next) => {
|
||||
const token = req.header('x-auth');
|
||||
//const refreshToken = req.header('x-refrtok');
|
||||
|
||||
// console.log('authenticate... ');
|
||||
|
||||
let noaut = false;
|
||||
|
||||
if (req.body.hasOwnProperty('noaut')) {
|
||||
noaut = req.body.noaut;
|
||||
}
|
||||
|
||||
if (noaut) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
|
||||
const access = 'auth';
|
||||
|
||||
//const idapp = getIdApp(req);
|
||||
|
||||
try {
|
||||
console.log(' ### authenticate_withUser: token', !!token);
|
||||
|
||||
const ris = await User.findByToken(token, access, true, true);
|
||||
if (ris && ris.user && !!ris.user.deleted) {
|
||||
if (ris.user.deleted)
|
||||
ris.user = null;
|
||||
}
|
||||
|
||||
if (ris.code === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) {
|
||||
return res.status(server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED).send();
|
||||
}
|
||||
|
||||
if (!ris.user) {
|
||||
return res.status(server_constants.RIS_CODE_HTTP_INVALID_TOKEN).send();
|
||||
}
|
||||
|
||||
if (!!ris.user) {
|
||||
console.log(' AUTH 2) ');
|
||||
// crea una funzione per aggiornare il lasttimeonline e useragent
|
||||
// Save last time online
|
||||
await User.updateLastTimeAndUserAgent(ris.user._id, req.get('User-Agent'));
|
||||
req.user = ris.user;
|
||||
req.token = token;
|
||||
// req.refreshToken = refreshToken;
|
||||
req.access = access;
|
||||
|
||||
console.log(' AUTH_WITHUSER 3) NEXT... ');
|
||||
next(); // Esegui il codice successivo
|
||||
}
|
||||
} catch (e) {
|
||||
tools.mylog("ERR authenticate invalid Token =", e);
|
||||
if (e === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) {
|
||||
return res.status(server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED).send();
|
||||
}
|
||||
res.status(server_constants.RIS_CODE_HTTP_INVALID_TOKEN).send();
|
||||
}
|
||||
};
|
||||
|
||||
const getIdApp = (req) => {
|
||||
let idapp = null;
|
||||
try {
|
||||
idapp = req.query.idapp;
|
||||
} catch (e) {
|
||||
console.log('IDAPP NON TROVATO !');
|
||||
}
|
||||
return idapp;
|
||||
|
||||
}
|
||||
|
||||
const authenticate_noerror = async (req, res, next) => {
|
||||
const authenticateMiddleware = async (req, res, next, withUser = false, lean = false, noError = false) => {
|
||||
try {
|
||||
const token = req.header('x-auth');
|
||||
const refreshToken = req.header('x-refrtok');
|
||||
// console.log(' ### Authenticate_noerror: token', !!token);
|
||||
const logPrefix = noError ? (withUser ? (lean ? 'WITHUSERLEAN' : 'WITHUSER') : 'NOERROR') : 'AUTH';
|
||||
|
||||
if (!token) {
|
||||
req.user = null;
|
||||
req.token = null;
|
||||
req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN;
|
||||
console.log(' ## TOKEN INVALIDO ❌ ...');
|
||||
return next();
|
||||
console.log(` ## ${logPrefix}_TOKEN INVALIDO ❌ ...`);
|
||||
return noError ? next() : res.status(server_constants.RIS_CODE_HTTP_INVALID_TOKEN).send();
|
||||
}
|
||||
|
||||
const ris = await User.findByToken(token, 'auth', false, false);
|
||||
|
||||
if (ris.code !== server_constants.RIS_CODE_OK) {
|
||||
const user = await User.findByToken(token, 'auth', false, withUser, lean);
|
||||
|
||||
if (user.code !== server_constants.RIS_CODE_OK) {
|
||||
req.user = null;
|
||||
req.token = null;
|
||||
req.code = ris.code;
|
||||
req.code = user.code;
|
||||
} else {
|
||||
req.user = ris.user;
|
||||
req.user = user.user;
|
||||
req.token = token;
|
||||
req.refreshToken = refreshToken;
|
||||
req.code = ris.code;
|
||||
req.code = user.code;
|
||||
}
|
||||
|
||||
if (ris.code === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) {
|
||||
return res.status(server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED).send();
|
||||
|
||||
if (user.code === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) {
|
||||
console.log(` TOKEN SCADUTO ! `);
|
||||
if (noError) {
|
||||
return next()
|
||||
} else {
|
||||
return res.status(server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED).send();
|
||||
}
|
||||
}
|
||||
|
||||
// console.log(' ## NEXT ! AVANTI...');
|
||||
|
||||
// console.log(` ## ${logPrefix} NEXT ! AVANTI...`);
|
||||
next();
|
||||
} catch (e) {
|
||||
console.error('Errore nel middleware di autenticazione:', e);
|
||||
req.user = null;
|
||||
req.token = null;
|
||||
req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN;
|
||||
next();
|
||||
}
|
||||
};
|
||||
const authenticate_noerror_WithUser = async (req, res, next) => {
|
||||
try {
|
||||
const token = req.header('x-auth');
|
||||
const refreshToken = req.header('x-refrtok');
|
||||
// console.log(' ### authenticate_noerror_WithUser: token', !!token);
|
||||
|
||||
if (!token) {
|
||||
req.user = null;
|
||||
req.token = null;
|
||||
req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN;
|
||||
console.log(' ## WITHUSER_TOKEN INVALIDO ❌ ...');
|
||||
return next();
|
||||
}
|
||||
|
||||
const ris = await User.findByToken(token, 'auth', false, true);
|
||||
|
||||
if (ris.code !== server_constants.RIS_CODE_OK) {
|
||||
req.user = null;
|
||||
req.token = null;
|
||||
req.code = ris.code;
|
||||
} else {
|
||||
req.user = ris.user;
|
||||
req.token = token;
|
||||
req.refreshToken = refreshToken;
|
||||
req.code = ris.code;
|
||||
}
|
||||
|
||||
if (ris.code === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) {
|
||||
return res.status(server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED).send();
|
||||
}
|
||||
|
||||
console.log(' ## NEXT ! AVANTI...');
|
||||
next();
|
||||
} catch (e) {
|
||||
console.error('Errore nel middleware di autenticazione:', e);
|
||||
req.user = null;
|
||||
req.token = null;
|
||||
req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN;
|
||||
next();
|
||||
noError ? next() : res.status(server_constants.RIS_CODE_HTTP_INVALID_TOKEN).send();
|
||||
}
|
||||
};
|
||||
|
||||
const authenticate_noerror_WithUserLean = async (req, res, next) => {
|
||||
try {
|
||||
const token = req.header('x-auth');
|
||||
const refreshToken = req.header('x-refrtok');
|
||||
// console.log(' ### authenticate_noerror_WithUserLean: token', !!token);
|
||||
|
||||
if (!token) {
|
||||
req.user = null;
|
||||
req.token = null;
|
||||
req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN;
|
||||
console.log(' ## WITHUSER_TOKEN INVALIDO ❌ ...');
|
||||
return next();
|
||||
}
|
||||
|
||||
const ris = await User.findByToken(token, 'auth', false, true, true);
|
||||
|
||||
if (ris.code !== server_constants.RIS_CODE_OK) {
|
||||
req.user = null;
|
||||
req.token = null;
|
||||
req.code = ris.code;
|
||||
} else {
|
||||
req.user = ris.user;
|
||||
req.token = token;
|
||||
req.refreshToken = refreshToken;
|
||||
req.code = ris.code;
|
||||
}
|
||||
|
||||
if (ris.code === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) {
|
||||
return res.status(server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED).send();
|
||||
}
|
||||
|
||||
console.log(' ## NEXT ! AVANTI...');
|
||||
next();
|
||||
} catch (e) {
|
||||
console.error('Errore nel middleware di autenticazione:', e);
|
||||
req.user = null;
|
||||
req.token = null;
|
||||
req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN;
|
||||
next();
|
||||
}
|
||||
};
|
||||
const authenticate = (req, res, next) => authenticateMiddleware(req, res, next);
|
||||
const authenticate_withUser = (req, res, next) => authenticateMiddleware(req, res, next, true);
|
||||
const authenticate_withUserLean = (req, res, next) => authenticateMiddleware(req, res, next, true, true);
|
||||
const authenticate_noerror = (req, res, next) => authenticateMiddleware(req, res, next, false, false, true);
|
||||
const authenticate_noerror_WithUser = (req, res, next) => authenticateMiddleware(req, res, next, true, false, true);
|
||||
const authenticate_noerror_WithUserLean = (req, res, next) => authenticateMiddleware(req, res, next, true, true, true);
|
||||
|
||||
module.exports = { authenticate, authenticate_noerror, auth_default, authenticate_withUser, authenticate_noerror_WithUser, authenticate_noerror_WithUserLean };
|
||||
|
||||
Reference in New Issue
Block a user