Metodi per autenticare e reindirizzare con un'applicazione Web front-end disaccoppiata

0

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?

    
posta spencer.sm 16.05.2018 - 21:37
fonte

2 risposte

2

Lo gestiresti più o meno come fai ora. Disaccoppiare l'Api non significa che hai zero codice lato server sul tuo sito web.

In particolare, si vuole essere in grado di negare agli utenti non autenticati l'accesso a javascript, immagini, html e altri contenuti.

Puoi farlo mantenendo il tuo attuale codice di autenticazione lato server per gestire il login e la generazione di token. Una volta che l'accesso è riuscito, il token può essere letto dal javascript e successivamente utilizzato per autenticare le richieste all'API e essere passato al server Web per autenticare le richieste di pagina

    
risposta data 02.07.2018 - 11:03
fonte
1

Il modo in cui l'ho fatto, con un server OAuth2 era questo:

  1. Il client raggiunge il server dei contenuti.
  2. Il client non ha una sessione attiva, viene reindirizzato al server di autenticazione con una richiamata al server dei contenuti.
  3. Il client si autentica e viene reindirizzato al server di contenuti con un token di autenticazione.
  4. Il server di contenuti verifica direttamente il token del contenuto con il server di autenticazione e consente l'accesso al client.

L'autenticazione è ora su un server separato, ma il server di contenuti deve comunque tenere traccia della sessione tramite un cookie.

    
risposta data 02.07.2018 - 16:02
fonte

Leggi altre domande sui tag