Jak przeprowadzić uwierzytelnianie za pomocą aplikacji pojedynczej strony i zaplecza API?

Jestem właścicielem zarówno zaplecza API w api.example.com, jak i aplikacji pojedynczej strony frontend w example.com. API jest w zasadzie opakowaniem dla zaplecza bazy danych.

Teraz chcę, aby użytkownik aplikacji jednostronicowej (= aplikacja kliencka) uwierzytelnił się w interfejsie API. W tym celu, o ile rozumiem, klient (= aplikacja pojedynczej strony) wysyła identyfikator klienta wraz z identyfikatorem użytkownika do interfejsu API, a następnie interfejs API udostępnia klucz dostępu.

Jednak w mojej aplikacji na jednej stronie nie jestem pewien, gdzie / jak przechowywać token dostępu. Szukam prostego odniesienia lub dobrej koncepcji, aby mieć zalogowanego użytkownika dostęp do aplikacji API.

Przyjaciel zasugerował mi ten przepływ:

Klient wyświetla dane wejściowe do logowania (czy to e-mail lub nazwa użytkownika) i hasło,Aplikacja kliencka wysyła żądanie do API, aby uzyskać nieautoryzowany token (np. POST / api / v1 / auth / new),Serwer tworzy token dla aplikacji i wysyła go z powrotem,Aplikacja kliencka wysyła token wraz z loginem, hasłem i podpisem żądania do interfejsu API (np. POST / api / v1 / mobile_authenticate),API sprawdza i weryfikuje poświadczenia,Jeśli wszystko jest w porządku, aplikacja korzysta z tokena, aby dalej działać w imieniu użytkownika.

jakieś pomysły? Jak można to uprościć lub poprawić?

questionAnswers(1)

yourAnswerToTheQuestion