- COMPLETAMENTO PASSAGGIO A VITE - versione 1.2.2:

- Sistemato RefreshToken
  - Integrato modifiche di PiuCheBuono
  - Aggiornato a Node 22
  - Aggiornato Server a Mongodb 8.0.
This commit is contained in:
Surya Paolo
2025-03-10 17:20:57 +01:00
parent 6579c6bb3f
commit 4758ce0857
20 changed files with 118 additions and 116 deletions

View File

@@ -50,7 +50,7 @@ async function connectToDatabase(uri, opts) {
while (!isConnected) {
try {
console.log("Sto provando a connettermi al database...");
await mongoose.connect(uri, opts);
await mongoose.connect(uri);
console.log(' *** CONNESSIONE EFFETTUATA ! ' + uri + ' db: ' + process.env.DATABASE);

View File

@@ -88,39 +88,45 @@ const authenticate_noerror = (req, res, next) => {
const token = req.header('x-auth');
const refreshToken = req.header('x-refrtok');
const idapp = getIdApp(req);
const access = 'auth';
return User.findByToken(token, access, false, idapp).then((ris) => {
if (ris.code !== server_constants.RIS_CODE_OK) {
req.user = null;
req.token = null;
req.access = null;
req.code = ris.code;
} else {
req.user = ris.user;
req.token = token;
req.refreshToken = refreshToken;
req.access = access;
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();
} else {
// Vai avanti ad eseguire il codice, in ogni modo !
next();
}
}).catch((e) => {
if (!token) {
req.user = null;
req.token = null;
req.access = null;
req.code = 0;
req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN;
return next();
}
// Continua comunque !
next();
});
User.findByToken(token, 'auth', false, getIdApp(req))
.then((ris) => {
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();
}
next();
})
.catch((e) => {
console.error('Errore durante l\'autenticazione:', e);
req.user = null;
req.token = null;
req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN;
next();
});
} catch (e) {
console.error('Err', 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();
}
};

View File

@@ -180,16 +180,7 @@ MyPageSchema.statics.findOnlyStruttRec = async function (idapp) {
{
idapp,
loadFirst: true,
}).then(
(arrrec) => {
return arrrec
}
).catch((err) => {
if (err) {
console.error('findOnlyStruttRec', err);
throw err;
}
});
}).lean();
const arrfixed = await MyPage.find(
{
@@ -216,15 +207,7 @@ MyPageSchema.statics.findOnlyStruttRec = async function (idapp) {
loadFirst: 1,
mainMenu: 1,
sottoMenu: 1,
}).then((arrrec) => {
return arrrec
}).catch((err) => {
if (err) {
console.error('findOnlyStruttRec', err);
throw err;
}
});
}).lean();
return [...arrFirst, ...arrfixed];

View File

@@ -65,8 +65,8 @@ const NewstosentSchema = new Schema({
NewstosentSchema.statics.getFieldsForSearch = function () {
return [{ field: 'name', type: tools.FieldType.string },
{ field: 'surname', type: tools.FieldType.string },
{ field: 'email', type: tools.FieldType.string }]
{ field: 'surname', type: tools.FieldType.string },
{ field: 'email', type: tools.FieldType.string }]
};
NewstosentSchema.statics.executeQueryTable = function (idapp, params) {
@@ -85,11 +85,7 @@ NewstosentSchema.statics.findNewsletter_To_Send = function (idapp) {
processing_job: false,
finish_job: false,
idapp
})
.sort({ datetoSent: 1 })
.then((rec) => {
return (rec) ? rec._doc : null;
});
}).sort({ datetoSent: 1 }).lean();
};
NewstosentSchema.statics.endJob = async function (id) {
@@ -127,10 +123,7 @@ NewstosentSchema.statics.findNewsletterPending_To_Send = function (idapp) {
processing_job: false,
lastemailsent_Job: { $gte: tools.IncDateNow(-1000 * 60 * 60 * 15) },
idapp
}).then((rec) => {
// console.log('findNewsletterPending_To_Send', rec);
return (rec) ? rec._doc : null;
});
}).lean();
};
NewstosentSchema.statics.findAllIdApp = async function (idapp) {

View File

@@ -659,33 +659,30 @@ router.post('/notifs', authenticate, async (req, res) => {
});
router.post('/newtok', async (req, res) => {
try {
const refreshToken = req.body.refreshToken;
// Ottieni l'utente in base al refreshtoken
const recFound = await User.findOne({ 'tokens.refreshToken': refreshToken });
// console.log('recFound', recFound ? recFound.name : 'NOTFOUND', 'Token=', refreshToken);
if (recFound) {
return recFound.generateAuthToken(req)
.then((ris) => {
return res.status(200).send({
usertosend: recFound,
token: ris.token,
refreshToken: ris.refreshToken
});
})
if (!refreshToken) {
return res.status(400).send({ error: 'Refresh token mancante' });
}
const recFound = await User.findOne({ 'tokens.refreshToken': refreshToken });
if (!recFound) {
return res.status(404).send({ error: 'Refresh token non valido' });
}
const { token, refreshToken: newRefreshToken } = await recFound.generateAuthToken(req);
return res.status(200).send({
token,
refreshToken: newRefreshToken,
});
} catch (e) {
console.error('Err', e);
console.error('Errore durante il refresh token:', e);
return res.status(500).send({ error: 'Errore interno del server' });
}
res.status(404).send({ code: server_constants.RIS_CODE_HTTP_INVALID_TOKEN });
});
})
// Dizionario per tenere traccia dei tentativi di accesso falliti per ogni utente
const failedLoginAttempts = {};

View File

@@ -5,7 +5,7 @@ require('./config/config');
console.log("VERSIONE NODE.JS :", process.versions.node);
if (process.env.AUTH_MONGODB === undefined) {
console.error("AUTH_MONGODB non presente. VARIABILI D'AMBIENTE NON SETTATI!");
exit;
process.exit(1);
}

View File

@@ -66,21 +66,21 @@ const emo = {
EXCLAMATION_MARK: emoji.get('exclamation'),
QUESTION_MARK: emoji.get('question'),
ARROW_RIGHT: emoji.get('arrow_right'),
INVITATI: emoji.get('man_and_woman_holding_hands'),
HEART: emoji.get('heart'),
BLUE_HEART: emoji.get('blue_heart'),
GREEN_HEART: emoji.get('green_heart'),
YELLOW_HEART: emoji.get('yellow_heart'),
PURPLE_HEART: emoji.get('purple_heart'),
GIFT_HEART: emoji.get('gift_heart'),
GIFT: emoji.get('gift'),
ROBOT_FACE: emoji.get('robot_face'),
ADMIN: emoji.get('information_desk_person'),
MALE: emoji.get('man-tipping-hand'),
FEMALE: emoji.get('female-guard'),
INNOCENT: emoji.get('innocent'),
CREDIT_CARD: emoji.get('credit_card'),
PERSON: emoji.get('man-tipping-hand'),
INVITATI: '',
HEART: '❤️',
BLUE_HEART: '💙',
GREEN_HEART: '💚',
YELLOW_HEART: '💛',
PURPLE_HEART: '💜',
GIFT_HEART: '💝',
GIFT: '🎁',
ROBOT_FACE: '🤖',
ADMIN: '💁',
MALE: '💁‍♂️',
FEMALE: '👩‍🦱',
INNOCENT: '😇',
CREDIT_CARD: '💳',
PERSON: '🧑',
};
MsgBot = {

View File

@@ -1 +1 @@
1.1.23
1.2.2