Gdy interfejs API wymaga uwierzytelnienia klienta, widziałem dwa różne scenariusze i zastanawiam się, który przypadek powinienem zastosować w mojej sytuacji.
Przykład 1. Firma oferuje interfejs API, aby umożliwić stronom trzecim uwierzytelnianie za pomocą tokena i tajnego przy użyciu HTTP Basic.
Przykład 2. Interfejs API akceptuje nazwę użytkownika i hasło za pośrednictwem HTTP Basic w celu uwierzytelnienia użytkownika końcowego. Zazwyczaj otrzymują token z powrotem na przyszłe żądania.
Moja konfiguracja: będę mieć interfejs API JSON, którego używam jako zaplecza aplikacji mobilnej i internetowej. Wydaje się, że dobrą praktyką jest, aby zarówno aplikacja mobilna, jak i internetowa wysyłały token i klucz tajny, aby tylko te dwie aplikacje mogły uzyskać dostęp do interfejsu API blokującego wszelkie strony trzecie.
Ale aplikacja mobilna i internetowa umożliwiają użytkownikom logowanie się i przesyłanie postów, przeglądanie ich danych itp. Chciałbym więc, aby logowali się również przez HTTP Basic na każde żądanie.
Czy w jakiś sposób używam kombinacji obu tych metod, czy wysyłam tylko poświadczenia użytkownika końcowego (nazwę użytkownika i token) na każde żądanie? Jeśli przesyłam tylko poświadczenia użytkownika końcowego, czy przechowuję je w pliku cookie na kliencie?