Progettazione per un server API con flusso OAuth di terze parti

1

Ho un server API ed è client SPA (nodo + reagisce, ma non è correlato). Tutti gli endpoint dell'API sono sotto% namespace in% co_de e lo SPA continua a effettuare chiamate REST per eseguire operazioni.

Stiamo lavorando su una funzione che richiede ai nostri utenti di collegare il proprio servizio account di terzi tramite OAuth 2. OAuth 2 richiede che l'utente venga reindirizzato al server di autenticazione Foo Service, e 'reindirizzeremo di nuovo, come al solito con OAuth 2.

È qui che sorge la domanda di design:

  1. Sto effettuando solo chiamate REST tramite /api nella SPA:

Se il cliente effettua un'altra chiamata REST, il server restituisce il solito reindirizzamento 302 e il client interpreta la risposta, modificando il browser nel sito Web OAuth 2?

Oppure, se il client sa che tale richiesta al server non deve essere eseguita tramite REST, ma il reindirizzamento del browser, e quindi il server restituisce semplicemente un'intestazione 302 a Foo Service. Se questo è quello corretto, questo punto finale non deve trovarsi sotto il percorso fetch() , giusto?

    
posta Christopher Francisco 02.02.2018 - 00:14
fonte

2 risposte

1

Per motivi di sicurezza, il 302 dovrebbe provenire da una richiesta HTTP di aggiornamento della pagina intera non AJAX dal tuo server. Assicurati che il tuo server, non SPA, generi il parametro di stato che verrà passato come parte del flusso OAuth.

    
risposta data 02.02.2018 - 21:17
fonte
0

Per espandere un litte sulla risposta di @RibaldEddie: rendi la tua API completamente indipendente dalle interazioni dell'utente. L'utente non deve accedere a nessun endpoint dell'API tramite browser. In questo caso particolare dovresti ottenere il token OAuth all'interno della tua SPA e passarlo alla tua API.

    
risposta data 04.02.2018 - 13:47
fonte

Leggi altre domande sui tag