Lavoro per un sito di e-commerce e stiamo cercando di esporre molte delle nostre funzionalità principali tramite una serie di API. Abbiamo in programma di riscrivere alcuni dei nostri siti Web pubblici (ad esempio il sito web del negozio principale) per chiamare anche queste nuove API. Attualmente gran parte del codice di base si trova direttamente nell'app Web principale (rendendo difficile fornire questa funzionalità a terze parti).
Sto guardando le opzioni di autenticazione per le API che stiamo per scrivere. JWT sembra una buona idea, ogni consumatore di API (sito web principale, qualche app mobile, alcuni di terze parti) richiederà un token e quindi lo userà nelle richieste di endpoint come / prodotti, offerte ecc.
Tuttavia, sono confuso su come questa API possa funzionare con il sistema degli account utente del nostro sito Web pubblico, ad es. abbiamo centinaia di utenti finali che accedono al sito web corrente tramite il nome utente e la password con cui si sono registrati.
Come funzionerebbe l'autenticazione, ad esempio, per un endpoint come utenti / 1 / ordini. Il token JWT gestirà l'effettivo accesso all'API (per il consumatore, ad esempio un'app o una terza parte), ma come possiamo assicurarci che l'utente finale vero sia autenticato? Come dovrebbero essere trasferite tali informazioni nell'API principale? Ci sarebbe un endpoint di 'login' che prende il nome utente / passa in testo normale? Ci sarebbe un altro token a questo punto per determinare l'utente che si è autenticato?
Non capisco come si tiene traccia del fatto che l'utente finale ha effettuato l'accesso, dando l'accesso consumer all''endpoint 'orders' dell'API, ad esempio.
Qualche consiglio molto apprezzato!