Server Json che fa una registrazione di un utente tramite mail utilizzando mongoDB e allacciato all'applicazione flutter che lo interroga
Find a file
2025-11-07 00:21:01 +08:00
auth_svr.zip first commit 2025-11-06 14:33:34 +01:00
authemailsvr.zip first commit 2025-11-06 14:33:34 +01:00
README.md Aggiorna README.md 2025-11-07 00:21:01 +08:00

Applicazione Flutter e relativo server json utilizzando MongoDB

server

npm init -y
npm install express nodemailer body-parser dotenv mongoose crypto express-rate-limit path

lista dei packages installati

npm list --depth=0
├── body-parser@2.2.0
├── crypto@1.0.1
├── dotenv@17.2.3
├── express-rate-limit@8.2.1
├── express@5.1.0
├── mongoose@8.19.3
├── nodemailer@7.0.10
└── path@0.12.7

far partire con

node index.js

modificare .env per il server

utilizza auth.patachina.it per comunicare

interrogare il server con curl

curl -X POST https://auth.patachina.it/api/verifica-email \
  -H "Content-Type: application/json" \
  -d '{
    "nome": "Fabio",
    "cognome": "Micheluz",
    "email": "fabio.micheluz@gmail.com",
    "telefono": "+393331234567",
    "applicazione": "flutter-app"
  }'

curl -X POST https://auth.patachina.it/api/conferma-codice \
  -H "Content-Type: application/json" \
  -d '{
    "email": "fabio.micheluz@gmail.com",
    "codice": "323646"
  }'

curl -X POST https://auth.patachina.it/api/cancella_utente \
  -H "Content-Type: application/json" \
  -d '{
    "email": "fabio.micheluz@gmail.com"
  }'

Settare nginx

nginx è settato così

   server {
        listen 443 ssl;
        server_name auth.patachina.it;

        ssl_certificate ssl/live/patachina.it/fullchain.pem;
        ssl_certificate_key ssl/live/patachina.it/privkey.pem;
        
        # per aggancio con applicazione Flutter android
        location /.well-known/ {
            proxy_pass http://192.168.1.3:3400/.well-known/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
        # Per farlo funzionare anche su Browser anche senza noCORS difatti abilita tutte le origini
        location /api/ {
            proxy_pass http://192.168.1.3:3400;  # o il tuo backend

            # Header CORS per tutte le richieste
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
            add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization' always;

            # Gestione preflight OPTIONS
            if ($request_method = OPTIONS) {
                add_header 'Access-Control-Max-Age' 86400;
                add_header 'Access-Control-Allow-Origin' '*' always;
                add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
                add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization' always;
                add_header 'Content-Length' 0;
                add_header 'Content-Type' 'text/plain charset=UTF-8';
                return 204;
            }
        }

        # per il passaggio dei dati
        location / {
           proxy_pass http://192.168.1.3:3400;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
        }
   }

fare i backup del codice

da linux i server json

zip -r authemailsvr.zip emailsvr2/ -x "*/node_modules/*"

da android studio il flutter

zip -r auth_svr.zip auth_svr -x "*/.*" -x "auth_svr/build/*"