- fix: nModified è stato sostituito con modifiedCount

- .ok con .acknowledged
- coretto la chiamata per il REFRESH TOKEN !
This commit is contained in:
Surya Paolo
2025-03-14 10:55:37 +01:00
parent e04247b1b6
commit aeb83a512b
15 changed files with 41 additions and 240 deletions

View File

@@ -29,7 +29,7 @@ GCM_API_KEY=""
PROD=0 PROD=0
PROJECT_DESCR_MAIN='__PROJECTS' PROJECT_DESCR_MAIN='__PROJECTS'
SECRK=Askb38v23jjDFaoskBOWj92axXCQ SECRK=Askb38v23jjDFaoskBOWj92axXCQ
TOKEN_LIFE=2h TOKEN_LIFE=1m
REFRESH_TOKEN_LIFE=14d REFRESH_TOKEN_LIFE=14d
FTPSERVER_HOST=139.162.166.31 FTPSERVER_HOST=139.162.166.31
FTPSERVER_PORT=21 FTPSERVER_PORT=21

View File

@@ -11,256 +11,58 @@ const auth_default = (req, res, next) => {
}; };
const authenticate = async (req, res, next) => { const authenticateMiddleware = async (req, res, next, withUser = false, lean = false, noError = false) => {
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) => {
try { try {
const token = req.header('x-auth'); const token = req.header('x-auth');
const refreshToken = req.header('x-refrtok'); const refreshToken = req.header('x-refrtok');
// console.log(' ### Authenticate_noerror: token', !!token); const logPrefix = noError ? (withUser ? (lean ? 'WITHUSERLEAN' : 'WITHUSER') : 'NOERROR') : 'AUTH';
if (!token) { if (!token) {
req.user = null; req.user = null;
req.token = null; req.token = null;
req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN; req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN;
console.log(' ## TOKEN INVALIDO ❌ ...'); console.log(` ## ${logPrefix}_TOKEN INVALIDO ❌ ...`);
return next(); return noError ? next() : res.status(server_constants.RIS_CODE_HTTP_INVALID_TOKEN).send();
} }
const ris = await User.findByToken(token, 'auth', false, false); const user = await User.findByToken(token, 'auth', false, withUser, lean);
if (ris.code !== server_constants.RIS_CODE_OK) { if (user.code !== server_constants.RIS_CODE_OK) {
req.user = null; req.user = null;
req.token = null; req.token = null;
req.code = ris.code; req.code = user.code;
} else { } else {
req.user = ris.user; req.user = user.user;
req.token = token; req.token = token;
req.refreshToken = refreshToken; req.refreshToken = refreshToken;
req.code = ris.code; req.code = user.code;
} }
if (ris.code === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) { if (user.code === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) {
return res.status(server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED).send(); 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(); next();
} catch (e) { } catch (e) {
console.error('Errore nel middleware di autenticazione:', e); console.error('Errore nel middleware di autenticazione:', e);
req.user = null; req.user = null;
req.token = null; req.token = null;
req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN; 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_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();
} }
}; };
const authenticate_noerror_WithUserLean = async (req, res, next) => { const authenticate = (req, res, next) => authenticateMiddleware(req, res, next);
try { const authenticate_withUser = (req, res, next) => authenticateMiddleware(req, res, next, true);
const token = req.header('x-auth'); const authenticate_withUserLean = (req, res, next) => authenticateMiddleware(req, res, next, true, true);
const refreshToken = req.header('x-refrtok'); const authenticate_noerror = (req, res, next) => authenticateMiddleware(req, res, next, false, false, true);
// console.log(' ### authenticate_noerror_WithUserLean: token', !!token); 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);
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();
}
};
module.exports = { authenticate, authenticate_noerror, auth_default, authenticate_withUser, authenticate_noerror_WithUser, authenticate_noerror_WithUserLean }; module.exports = { authenticate, authenticate_noerror, auth_default, authenticate_withUser, authenticate_noerror_WithUser, authenticate_noerror_WithUserLean };

View File

@@ -657,7 +657,7 @@ AccountSchema.statics.updateQtaMax = async function (idapp, username, groupname,
else else
risult = await Account.updateOne({ idapp, username, circuitId }, { $set: paramstoupdate }); risult = await Account.updateOne({ idapp, username, circuitId }, { $set: paramstoupdate });
return risult && risult.nModified > 0; return risult && risult.modifiedCount > 0;
}; };
AccountSchema.statics.getAccountsCircuitiNazionali = async function (idapp) { AccountSchema.statics.getAccountsCircuitiNazionali = async function (idapp) {

View File

@@ -1341,7 +1341,7 @@ CircuitSchema.statics.setFido = async function (idapp, username, circuitName, gr
const ris = await Account.updateFido(idapp, username, groupname, circuitId, fido); const ris = await Account.updateFido(idapp, username, groupname, circuitId, fido);
if (ris) { if (ris) {
return { qta_maxConcessa: qtamax, fidoConcesso: fido, changed: variato || (ris && ris.nModified > 0) }; return { qta_maxConcessa: qtamax, fidoConcesso: fido, changed: variato || (ris && ris.modifiedCount > 0) };
} }
} }
} }

View File

@@ -256,7 +256,7 @@ CitySchema.statics.insertGeojsonToMongoDB = async function (nomefilejson) {
if (reccity) { if (reccity) {
const ris = await City.updateOne({ _id: reccity._id }, { $set: { geojson: citta } }); const ris = await City.updateOne({ _id: reccity._id }, { $set: { geojson: citta } });
if (ris.ok === 1) { if (ris.acknowledged === 1) {
inseriti++; inseriti++;
} }
} }

View File

@@ -353,7 +353,7 @@ MyHospSchema.statics.SettaAdTypeOffro_In_Hosps = async function () {
try { try {
// Set all records 'adType' to shared_consts.AdType.OFFRO // Set all records 'adType' to shared_consts.AdType.OFFRO
const result = await MyHosp.updateMany({}, { $set: { adType: shared_consts.AdType.OFFRO } }); const result = await MyHosp.updateMany({}, { $set: { adType: shared_consts.AdType.OFFRO } });
console.log('Successfully updated adType for', result.nModified, 'records'); console.log('Successfully updated adType for', result.modifiedCount, 'records');
} catch (err) { } catch (err) {
console.error('Error updating adType:', err); console.error('Error updating adType:', err);
} }

View File

@@ -1029,7 +1029,7 @@ module.exports.singlerecconvert_AfterImport_AndSave = async function (idapp, pro
ris = await Product.updateOne({ _id: new ObjectId(prod._id) }, { $unset: objDelete }) ris = await Product.updateOne({ _id: new ObjectId(prod._id) }, { $unset: objDelete })
if (ris && ris.nModified > 0) { if (ris && ris.modifiedCount > 0) {
console.log('Modificato: ', objtoset.name); console.log('Modificato: ', objtoset.name);
} }

View File

@@ -304,7 +304,7 @@ reactionSchema.statics.addFavorite = async function (req, idapp, username, id, t
fav: true, fav: true,
} }
}) })
ok = ris.ok; ok = ris.acknowledged;
} }
const { SendNotif } = require('../models/sendnotif'); const { SendNotif } = require('../models/sendnotif');

View File

@@ -568,8 +568,6 @@ UserSchema.methods.generateAuthToken = function (req) {
user.lasttimeonline = new Date(); user.lasttimeonline = new Date();
return user.save().then(() => { return user.save().then(() => {
// console.log('Salvato refreshToken su DB', refreshToken);
// console.log("TOKEN CREATO IN LOGIN : " + token);
return { token, refreshToken }; return { token, refreshToken };
}).catch(err => { }).catch(err => {
console.log('Error', err.message); console.log('Error', err.message);

View File

@@ -81,7 +81,7 @@ module.exports = {
} else { } else {
// Il documento esiste, lo aggiorniamo // Il documento esiste, lo aggiorniamo
const ris = await table.updateOne({ _id: existingDoc._id }, { $set: rec }); const ris = await table.updateOne({ _id: existingDoc._id }, { $set: rec });
if (ris && ris.nModified > 0) if (ris && ris.modifiedCount > 0)
numupdated++; numupdated++;
} }
} catch (e) { } catch (e) {

View File

@@ -514,7 +514,7 @@ router.post('/settable', authenticate, async (req, res) => {
}) })
.then(async (risult) => { .then(async (risult) => {
let rec = null; let rec = null;
if (risult && risult.ok === 1) { if (risult && risult.acknowledged === 1) {
rec = await mytable.findById(mytablerec._id).lean(); rec = await mytable.findById(mytablerec._id).lean();
} else { } else {
rec = risult; rec = risult;
@@ -990,7 +990,7 @@ async function upsertRecord(table, record, appId, newIdPage = null) {
record.idPage = newIdPage; record.idPage = newIdPage;
} }
const modif = await table.updateOne({ _id: record._id }, { $set: { ...record, idapp: appId } }); const modif = await table.updateOne({ _id: record._id }, { $set: { ...record, idapp: appId } });
wasModified = modif.nModified > 0; wasModified = modif.modifiedCount > 0;
} else { } else {
// Se sono sulla tabella mypages // Se sono sulla tabella mypages
if (table.modelName === 'MyPage') { if (table.modelName === 'MyPage') {

View File

@@ -99,7 +99,7 @@ router.post('/cmd', authenticate_noerror, async (req, res) => {
} }
let state = (value && ris && ris.ok === 1) ? 1 : ((!value && ris && ris.ok === 1) ? -1 : 0); let state = (value && ris && ris.acknowledged === 1) ? 1 : ((!value && ris && ris.acknowledged === 1) ? -1 : 0);
const risreac = await Reaction.calcReactions(idapp, id, tab); const risreac = await Reaction.calcReactions(idapp, id, tab);
if (risreac) { if (risreac) {

View File

@@ -805,7 +805,7 @@ connectToDatabase(connectionUrl, options)
`https://api.${domain.hostname}`, `https://api.${domain.hostname}`,
`https://test.${domain.hostname}`, `https://test.${domain.hostname}`,
`https://testapi.${domain.hostname}`, `https://testapi.${domain.hostname}`,
`https://freeplanet.app:3000`, `https://comunitanuovomondo.app`,
`https://freeplanet.app:3001`, `https://freeplanet.app:3001`,
`http://${domain.hostname}`, `http://${domain.hostname}`,
`http://api.${domain.hostname}`, `http://api.${domain.hostname}`,

View File

@@ -4638,6 +4638,7 @@ if (true) {
} }
} else if (data.action === InlineConferma.RISPOSTA_SI + shared_consts.CallFunz.RICHIESTA_CIRCUIT) { } else if (data.action === InlineConferma.RISPOSTA_SI + shared_consts.CallFunz.RICHIESTA_CIRCUIT) {
console.log(' CLICK per Aggiungere ', data.username, 'nel circuito', circuit?.name);
if (circuit) { if (circuit) {
// Aggiungilo nel Circuito // Aggiungilo nel Circuito
cmd = shared_consts.CIRCUITCMD.SET; cmd = shared_consts.CIRCUITCMD.SET;

View File

@@ -1 +1 @@
1.2.18 1.2.19