Sto trasferendo un'app Web sul lato server a un'applicazione JavaScript a pagina singola utilizzando un'API RESTful. Attualmente. gli utenti possono autenticarsi tramite Facebook, Twitter, Google, ecc. o tramite e-mail e password. Come autorizzo le stesse forme di autenticazione su un'API RESTful? Immagino che assomigli a qualcosa del genere:Autenticazione degli utenti di un'API utilizzando un provider Oauth di terze parti
- Autentica con il provider sul lato client.
- Prendere qualcosa dalla risposta Oauth e passarla a un'API sul mio server in cambio di un token di accesso.
- Utilizzare l'autenticazione basata su token per le successive chiamate API.
Sono sulla buona strada? In tal caso:
- C'è una libreria JS che gestisce più provider o ognuno di essi richiede qualcosa come l'SDK JS di Facebook?
- Che aspetto dovrebbe avere la mia API che genera il token? In particolare, di cosa ho bisogno dal provider Oauth e come posso verificarlo sul server?
Grazie, questo ha senso dal punto di vista tecnico. Stavo pensando da un angolo UX, sperando che ci fosse un modo per rimanere all'interno della mia app a pagina singola senza reindirizzamento. Sembra che sia possibile per Facebook usare il loro SDK JS, ma probabilmente non più in generale. –
Puoi evitare di reindirizzare dalla tua pagina aprendo un popup.Non è necessario reindirizzare l'endpoint REST di accesso dalla singola pagina, è possibile aprire un popup a tale endpoint e il reindirizzamento all'IDP (come Facebook) verrà eseguito in tale finestra popup. Alla fine del processo di login devi segnalare dal popup al JS sulla tua pagina principale con la risposta e la sessione di login. –
Perfetto! Dato che ho lavorato solo in una singola finestra, non avevo pensato di comunicare tra un popup e la pagina. –