- 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

@@ -1,12 +1,12 @@
DATABASE=test_PiuCheBuono DATABASE=test_FreePlanet
UDB=paofreeplanet UDB=paofreeplanet
PDB=mypassword@1A PDB=mypassword@1A
SEND_EMAIL=0 SEND_EMAIL=0
SEND_EMAIL_ORDERS=1 SEND_EMAIL_ORDERS=1
PORT=3000 PORT=3000
appTelegram_TEST=["1","17"] appTelegram_TEST=["1","13"]
appTelegram=["1","17"] appTelegram=["1","13"]
appTelegram_DEVELOP=["17"] appTelegram_DEVELOP=["13"]
DOMAIN=mongodb://localhost:27017/ DOMAIN=mongodb://localhost:27017/
AUTH_MONGODB=0 AUTH_MONGODB=0
ENABLE_PUSHNOTIFICATION=1 ENABLE_PUSHNOTIFICATION=1
@@ -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
@@ -38,9 +38,4 @@ FTPSERVER_PWD=ftpmypwd@1A_
AUTH_NEW_SITES=123123123 AUTH_NEW_SITES=123123123
SCRIPTS_DIR=admin_scripts SCRIPTS_DIR=admin_scripts
CLOUDFLARE_TOKENS=[{"label":"Paolo.arena77@gmail.com","value":"M9EM309v8WFquJKpYgZCw-TViM2wX6vB3wlK6GD0"},{"label":"gruppomacro.com","value":"bqmzGShoX7WqOBzkXocoECyBkPq3GfqcM5t6VFd8"}] CLOUDFLARE_TOKENS=[{"label":"Paolo.arena77@gmail.com","value":"M9EM309v8WFquJKpYgZCw-TViM2wX6vB3wlK6GD0"},{"label":"gruppomacro.com","value":"bqmzGShoX7WqOBzkXocoECyBkPq3GfqcM5t6VFd8"}]
MIAB_HOST=box.lamiaposta.org
MIAB_ADMIN_EMAIL=admin@lamiaposta.org
MIAB_ADMIN_PASSWORD=passpao1pabox@1A
DS_API_KEY="sk-222e3addb3d8455d8b0516d93906eec7" DS_API_KEY="sk-222e3addb3d8455d8b0516d93906eec7"
API_KEY_MSSQL="m68yADSr123MIVIDA@154$DSAGVOK"
SERVER_A_URL="http://51.77.156.69:3000"

View File

@@ -8,7 +8,9 @@ DIRECTORY_SERVER=/var/www/www.freeplanet_server
SERVERDIR_WEBSITE=/var/www/www.freeplanet_server SERVERDIR_WEBSITE=/var/www/www.freeplanet_server
PORT_APP1="0" PORT_APP1="0"
DOMAIN=mongodb://localhost:27017/ DOMAIN=mongodb://localhost:27017/
DOMAIN_AUTH=mongodb://{username}:{password}@127.0.0.1:27017/
AUTH_MONGODB=1 AUTH_MONGODB=1
AUTH_DB_PASSING=1
MONGODB_USER=admin MONGODB_USER=admin
MONGODB_PWD=mypwadminREAL@1A MONGODB_PWD=mypwadminREAL@1A
SIGNCODE=SU2134hncaskjdbo231oihJSDNHEI$1@AB SIGNCODE=SU2134hncaskjdbo231oihJSDNHEI$1@AB

View File

@@ -11,7 +11,9 @@ DIRECTORY_SERVER=/var/www/nodejs_piuchebuono_server
SERVERDIR_WEBSITE=/var/www/piuchebuono.app SERVERDIR_WEBSITE=/var/www/piuchebuono.app
PORT_APP1="0" PORT_APP1="0"
DOMAIN=mongodb://localhost:32001/ DOMAIN=mongodb://localhost:32001/
DOMAIN_AUTH=mongodb://{username}:{password}@127.0.0.1:32001/
AUTH_MONGODB=1 AUTH_MONGODB=1
AUTH_DB_PASSING=1
MONGODB_USER=admin MONGODB_USER=admin
MONGODB_PWD=mypwadminREAL@1A MONGODB_PWD=mypwadminREAL@1A
SIGNCODE=SU2134hncaskjdbo231oihJSDNHEI$1@AB SIGNCODE=SU2134hncaskjdbo231oihJSDNHEI$1@AB

View File

@@ -8,7 +8,9 @@ DIRECTORY_SERVER=/var/www/nodejs_riso_server
SERVERDIR_WEBSITE=/var/www/riso.app SERVERDIR_WEBSITE=/var/www/riso.app
PORT_APP1="0" PORT_APP1="0"
DOMAIN=mongodb://localhost:32015/ DOMAIN=mongodb://localhost:32015/
DOMAIN_AUTH=mongodb://{username}:{password}@127.0.0.1:32015/
AUTH_MONGODB=1 AUTH_MONGODB=1
AUTH_DB_PASSING=1
MONGODB_USER=admin MONGODB_USER=admin
MONGODB_PWD=mypwadminREAL@1A MONGODB_PWD=mypwadminREAL@1A
SIGNCODE=SU2134hncaskjdbo231oihJSDNHEI$1@AB SIGNCODE=SU2134hncaskjdbo231oihJSDNHEI$1@AB

View File

@@ -11,7 +11,9 @@ DIRECTORY_SERVER=/var/www/nodejs_test.piuchebuono_server
SERVERDIR_WEBSITE=var/www/test.piuchebuono.app SERVERDIR_WEBSITE=var/www/test.piuchebuono.app
PORT_APP1="0" PORT_APP1="0"
DOMAIN=mongodb://localhost:32002/ DOMAIN=mongodb://localhost:32002/
DOMAIN_AUTH=mongodb://{username}:{password}@127.0.0.1:32002/
AUTH_MONGODB=1 AUTH_MONGODB=1
AUTH_DB_PASSING=1
MONGODB_USER=admin MONGODB_USER=admin
MONGODB_PWD=mypwadmin@1A MONGODB_PWD=mypwadmin@1A
SIGNCODE=SU2134hncaskjdbo231oihJSDNHEI$1@AB SIGNCODE=SU2134hncaskjdbo231oihJSDNHEI$1@AB

View File

@@ -8,9 +8,9 @@ DIRECTORY_SERVER=/var/www/nodejs_test.riso_server
SERVERDIR_WEBSITE=/var/www/test.riso.app SERVERDIR_WEBSITE=/var/www/test.riso.app
PORT_APP1="0" PORT_APP1="0"
DOMAIN=mongodb://localhost:32012/ DOMAIN=mongodb://localhost:32012/
DOMAIN_AUTH=mongodb://{username}:{password}@localhost:32012/ DOMAIN_AUTH=mongodb://{username}:{password}@127.0.0.1:32012/
AUTH_MONGODB=1 AUTH_MONGODB=1
AUTH_DB_PASSING=0 AUTH_DB_PASSING=1
MONGODB_USER="admin" MONGODB_USER="admin"
MONGODB_PWD="mypwadminS1A" MONGODB_PWD="mypwadminS1A"
SIGNCODE=SU2134hncaskjdbo231oihJSDNHEI$1@AB SIGNCODE=SU2134hncaskjdbo231oihJSDNHEI$1@AB

View File

@@ -26,6 +26,10 @@ if [[ $risposta == "Y" || $risposta == "y" ]]; then
REMOTE_DIR="$DIRECTORY_SERVER" REMOTE_DIR="$DIRECTORY_SERVER"
SSH_OPTIONS="-p $REMOTE_PORT" SSH_OPTIONS="-p $REMOTE_PORT"
CONFIG_JS="ecosystem.config.testriso.js"
ENV_FILE=".env.test.risosrv"
ENV_OUT=".env.test"
# Array di cartelle e file da sincronizzare # Array di cartelle e file da sincronizzare
SYNC_ITEMS=( SYNC_ITEMS=(
"css" "css"
@@ -55,7 +59,8 @@ if [[ $risposta == "Y" || $risposta == "y" ]]; then
# Sincronizza i file specifici # Sincronizza i file specifici
rsync -avz -e "ssh $SSH_OPTIONS" \ rsync -avz -e "ssh $SSH_OPTIONS" \
.env.test.pcb "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/.env.test" $ENV_FILE "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/$ENV_OUT"
echo "" echo ""
echo "*** Copia del file package.json ... " echo "*** Copia del file package.json ... "
@@ -67,6 +72,11 @@ if [[ $risposta == "Y" || $risposta == "y" ]]; then
rsync -avz -e "ssh $SSH_OPTIONS" \ rsync -avz -e "ssh $SSH_OPTIONS" \
ecosystem.config.testpcb.js "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/ecosystem.config.js" ecosystem.config.testpcb.js "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/ecosystem.config.js"
echo ""
echo "*** Copia del file $CONFIG_JS in ecosystem.config.js ... "
rsync -avz -e "ssh $SSH_OPTIONS" \
$CONFIG_JS "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/ecosystem.config.js"
# Verifica il risultato # Verifica il risultato
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "Sincronizzazione completata con successo. SERVER PCB TEST! " echo "Sincronizzazione completata con successo. SERVER PCB TEST! "

View File

@@ -70,6 +70,12 @@ if [[ $risposta == "Y" || $risposta == "y" ]]; then
rsync -avz -e "ssh $SSH_OPTIONS" \ rsync -avz -e "ssh $SSH_OPTIONS" \
"$CONFIG_JS" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/ecosystem.config.js" "$CONFIG_JS" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/ecosystem.config.js"
echo ""
echo "*** Copia del file $CONFIG_JS in ecosystem.config.js ... "
rsync -avz -e "ssh $SSH_OPTIONS" \
$CONFIG_JS "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/ecosystem.config.js"
# Verifica il risultato # Verifica il risultato
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "Sincronizzazione completata con successo. SERVER $REMOTE_DIR! " echo "Sincronizzazione completata con successo. SERVER $REMOTE_DIR! "

View File

@@ -4,7 +4,7 @@ module.exports = {
name: "RISO", name: "RISO",
script: "/var/www/nodejs_riso_server/src/server/server.js", script: "/var/www/nodejs_riso_server/src/server/server.js",
ignore_watch: ["node_modules", "logs"], ignore_watch: ["node_modules", "logs"],
interpreter: "/root/.nvm/versions/node/v16.19.0/bin/node", interpreter: "/root/.nvm/versions/node/v22.13.1/bin/node",
//autorestart: true, //autorestart: true,
instances: 1, instances: 1,
watch: false, watch: false,

View File

@@ -4,7 +4,7 @@ module.exports = {
name: "PiuCheBuono (TEST)", name: "PiuCheBuono (TEST)",
script: "/var/www/nodejs_test.piuchebuono_server/src/server/server.js", script: "/var/www/nodejs_test.piuchebuono_server/src/server/server.js",
ignore_watch: ["node_modules", "logs"], ignore_watch: ["node_modules", "logs"],
interpreter: "/root/.nvm/versions/node/v16.19.0/bin/node", interpreter: "/root/.nvm/versions/node/v22.13.1/bin/node",
//autorestart: true, //autorestart: true,
instances: 1, instances: 1,
watch: false, watch: false,

View File

@@ -1,2 +1,6 @@
Dom 02/03 ORE 16:32: USER [surya1977]: ciao Dom 02/03 ORE 16:32: USER [surya1977]: ciao
Lun 10/03 ORE 15:52: USER [surya1977]: ciao
Lun 10/03 ORE 15:56: USER [surya1977]: ciao

View File

@@ -38,8 +38,8 @@
"jsdom": "^26.0.0", "jsdom": "^26.0.0",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"mongodb": "^6.14.1", "mongodb": "^6.14.2",
"mongoose": "^8.12.0", "mongoose": "^8.12.1",
"multer": "^1.4.5-lts.1", "multer": "^1.4.5-lts.1",
"mysql": "^2.18.1", "mysql": "^2.18.1",
"node-cron": "^3.0.3", "node-cron": "^3.0.3",
@@ -50,7 +50,7 @@
"node-telegram-bot-api": "^0.66.0", "node-telegram-bot-api": "^0.66.0",
"nodemailer": "^6.10.0", "nodemailer": "^6.10.0",
"npm-check-updates": "^17.1.15", "npm-check-updates": "^17.1.15",
"openai": "^4.86.1", "openai": "^4.86.2",
"pdf-lib": "^1.17.1", "pdf-lib": "^1.17.1",
"pdf-parse": "^1.1.1", "pdf-parse": "^1.1.1",
"pem": "^1.14.8", "pem": "^1.14.8",
@@ -78,7 +78,7 @@
"gulp-pug": "^5.0.0", "gulp-pug": "^5.0.0",
"gulp-rename": "^2.0.0", "gulp-rename": "^2.0.0",
"gulp-replace": "^1.1.4", "gulp-replace": "^1.1.4",
"gulp-sass": "^6.0.0", "gulp-sass": "^6.0.1",
"jest": "^29.7.0", "jest": "^29.7.0",
"mocha": "^11.1.0", "mocha": "^11.1.0",
"nodemon": "^3.1.9", "nodemon": "^3.1.9",

View File

@@ -50,7 +50,7 @@ async function connectToDatabase(uri, opts) {
while (!isConnected) { while (!isConnected) {
try { try {
console.log("Sto provando a connettermi al database..."); 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); 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 token = req.header('x-auth');
const refreshToken = req.header('x-refrtok'); const refreshToken = req.header('x-refrtok');
const idapp = getIdApp(req); if (!token) {
req.user = null;
req.token = null;
req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN;
return next();
}
const access = 'auth'; User.findByToken(token, 'auth', false, getIdApp(req))
return User.findByToken(token, access, false, idapp).then((ris) => { .then((ris) => {
if (ris.code !== server_constants.RIS_CODE_OK) { if (ris.code !== server_constants.RIS_CODE_OK) {
req.user = null; req.user = null;
req.token = null; req.token = null;
req.access = null;
req.code = ris.code; req.code = ris.code;
} else { } else {
req.user = ris.user; req.user = ris.user;
req.token = token; req.token = token;
req.refreshToken = refreshToken; req.refreshToken = refreshToken;
req.access = access;
req.code = ris.code; req.code = ris.code;
} }
if (ris.code === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) { if (ris.code === server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED) {
return res.status(server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED).send(); 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) => {
next();
})
.catch((e) => {
console.error('Errore durante l\'autenticazione:', e);
req.user = null; req.user = null;
req.token = null; req.token = null;
req.access = null; req.code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN;
req.code = 0;
// Continua comunque !
next(); next();
}); });
} catch (e) { } 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, idapp,
loadFirst: true, loadFirst: true,
}).then( }).lean();
(arrrec) => {
return arrrec
}
).catch((err) => {
if (err) {
console.error('findOnlyStruttRec', err);
throw err;
}
});
const arrfixed = await MyPage.find( const arrfixed = await MyPage.find(
{ {
@@ -216,15 +207,7 @@ MyPageSchema.statics.findOnlyStruttRec = async function (idapp) {
loadFirst: 1, loadFirst: 1,
mainMenu: 1, mainMenu: 1,
sottoMenu: 1, sottoMenu: 1,
}).then((arrrec) => { }).lean();
return arrrec
}).catch((err) => {
if (err) {
console.error('findOnlyStruttRec', err);
throw err;
}
});
return [...arrFirst, ...arrfixed]; return [...arrFirst, ...arrfixed];

View File

@@ -85,11 +85,7 @@ NewstosentSchema.statics.findNewsletter_To_Send = function (idapp) {
processing_job: false, processing_job: false,
finish_job: false, finish_job: false,
idapp idapp
}) }).sort({ datetoSent: 1 }).lean();
.sort({ datetoSent: 1 })
.then((rec) => {
return (rec) ? rec._doc : null;
});
}; };
NewstosentSchema.statics.endJob = async function (id) { NewstosentSchema.statics.endJob = async function (id) {
@@ -127,10 +123,7 @@ NewstosentSchema.statics.findNewsletterPending_To_Send = function (idapp) {
processing_job: false, processing_job: false,
lastemailsent_Job: { $gte: tools.IncDateNow(-1000 * 60 * 60 * 15) }, lastemailsent_Job: { $gte: tools.IncDateNow(-1000 * 60 * 60 * 15) },
idapp idapp
}).then((rec) => { }).lean();
// console.log('findNewsletterPending_To_Send', rec);
return (rec) ? rec._doc : null;
});
}; };
NewstosentSchema.statics.findAllIdApp = async function (idapp) { 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) => { router.post('/newtok', async (req, res) => {
try { try {
const refreshToken = req.body.refreshToken; const refreshToken = req.body.refreshToken;
// Ottieni l'utente in base al refreshtoken if (!refreshToken) {
return res.status(400).send({ error: 'Refresh token mancante' });
}
const recFound = await User.findOne({ 'tokens.refreshToken': refreshToken }); const recFound = await User.findOne({ 'tokens.refreshToken': refreshToken });
// console.log('recFound', recFound ? recFound.name : 'NOTFOUND', 'Token=', refreshToken); if (!recFound) {
return res.status(404).send({ error: 'Refresh token non valido' });
}
const { token, refreshToken: newRefreshToken } = await recFound.generateAuthToken(req);
if (recFound) {
return recFound.generateAuthToken(req)
.then((ris) => {
return res.status(200).send({ return res.status(200).send({
usertosend: recFound, token,
token: ris.token, refreshToken: newRefreshToken,
refreshToken: ris.refreshToken
}); });
})
}
} catch (e) { } 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 // Dizionario per tenere traccia dei tentativi di accesso falliti per ogni utente
const failedLoginAttempts = {}; const failedLoginAttempts = {};

View File

@@ -5,7 +5,7 @@ require('./config/config');
console.log("VERSIONE NODE.JS :", process.versions.node); console.log("VERSIONE NODE.JS :", process.versions.node);
if (process.env.AUTH_MONGODB === undefined) { if (process.env.AUTH_MONGODB === undefined) {
console.error("AUTH_MONGODB non presente. VARIABILI D'AMBIENTE NON SETTATI!"); 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'), EXCLAMATION_MARK: emoji.get('exclamation'),
QUESTION_MARK: emoji.get('question'), QUESTION_MARK: emoji.get('question'),
ARROW_RIGHT: emoji.get('arrow_right'), ARROW_RIGHT: emoji.get('arrow_right'),
INVITATI: emoji.get('man_and_woman_holding_hands'), INVITATI: '',
HEART: emoji.get('heart'), HEART: '❤️',
BLUE_HEART: emoji.get('blue_heart'), BLUE_HEART: '💙',
GREEN_HEART: emoji.get('green_heart'), GREEN_HEART: '💚',
YELLOW_HEART: emoji.get('yellow_heart'), YELLOW_HEART: '💛',
PURPLE_HEART: emoji.get('purple_heart'), PURPLE_HEART: '💜',
GIFT_HEART: emoji.get('gift_heart'), GIFT_HEART: '💝',
GIFT: emoji.get('gift'), GIFT: '🎁',
ROBOT_FACE: emoji.get('robot_face'), ROBOT_FACE: '🤖',
ADMIN: emoji.get('information_desk_person'), ADMIN: '💁',
MALE: emoji.get('man-tipping-hand'), MALE: '💁‍♂️',
FEMALE: emoji.get('female-guard'), FEMALE: '👩‍🦱',
INNOCENT: emoji.get('innocent'), INNOCENT: '😇',
CREDIT_CARD: emoji.get('credit_card'), CREDIT_CARD: '💳',
PERSON: emoji.get('man-tipping-hand'), PERSON: '🧑',
}; };
MsgBot = { MsgBot = {

View File

@@ -1 +1 @@
1.1.23 1.2.2