Ho un'applicazione web accoppiata (frontend e api back-end serviti dalla stessa applicazione). Ha funzionato bene per i nostri bisogni, ma sono stato curioso di conoscere le differenze che avrebbero dovuto avere un fronte e un backend completamente disaccoppiati.
Mi sto chiedendo in particolare come gestire le richieste di autenticazione possa funzionare con questo approccio. In questo momento ho la possibilità di reindirizzare una richiesta di fare una pagina diversa, cioè colpire la pagina /dashboard
reindirizzare a /login
se il token in un cookie non autentica.
Come sarebbe gestita senza che tutte le richieste passassero attraverso una singola applicazione?
Suppongo che creerei un proxy inverso per passare qualsiasi richiesta dal percorso /api
al server back-end. Ma tutto il resto sarebbe gestito da qualunque cosa serva il frontend. Se sto pensando a questo correttamente, ogni richiesta di una pagina sul frontend sarà "senza restrizioni" in un certo senso e quindi dopo aver richiesto le informazioni di autenticazione dal backend gestirà il reindirizzamento alla pagina corretta.
Tornando all'esempio da /dashboard
a /login
, seguirebbe questo flusso?
- Gli utenti richiedono
/dashboard
url - NGINX serve le risorse statiche necessarie per il pannello di controllo SPA.
- Il codice JavaScript di Frontend richiede le informazioni di autorizzazione da un endpoint back-end
- Se il cookie dell'utente non si autentica, reindirizza l'utente a
/login
tramite JavaScript.
Sono sulla buona strada o c'è un modo migliore per risolvere questo problema?