Dużą częścią filozofii REST jest wykorzystanie jak największej liczby standardowych funkcji protokołu HTTP podczas projektowania interfejsu API. Stosując tę filozofię do uwierzytelniania, klient i serwer wykorzystywałyby standardowe funkcje uwierzytelniania HTTP w API.
Ekrany logowania świetnie sprawdzają się w przypadku użytkowników: odwiedź ekran logowania, podaj użytkownika / hasło, ustaw plik cookie, klient zapewnia ten plik cookie we wszystkich przyszłych żądaniach. Nie można oczekiwać, że ludzie używający przeglądarek internetowych będą podawać identyfikator użytkownika i hasło przy każdym indywidualnym żądaniu HTTP.
Jednak w przypadku interfejsu API REST ekran logowania i pliki cookie sesji nie są bezwzględnie konieczne, ponieważ każde żądanie może zawierać poświadczenia bez wpływu na użytkownika; a jeśli klient nie współpracuje w dowolnym momencie, 401
można udzielić „nieautoryzowanej” odpowiedzi. RFC 2617 opisuje obsługę uwierzytelniania w protokole HTTP.
TLS (HTTPS) byłby również opcją i pozwoliłby na uwierzytelnianie klienta na serwerze (i odwrotnie) w każdym żądaniu poprzez weryfikację klucza publicznego drugiej strony. Dodatkowo zapewnia to kanałowi premię. Oczywiście, aby to zrobić, konieczna jest wymiana pary kluczy przed komunikacją. (Uwaga: dotyczy to w szczególności identyfikacji / uwierzytelniania użytkownika za pomocą protokołu TLS. Zabezpieczanie kanału za pomocą protokołu TLS / Diffie-Hellman jest zawsze dobrym pomysłem, nawet jeśli nie identyfikujesz użytkownika za pomocą jego klucza publicznego).
Przykład: załóżmy, że token OAuth to Twoje pełne dane logowania. Gdy klient ma token OAuth, można go podać jako identyfikator użytkownika w standardowym uwierzytelnianiu HTTP przy każdym żądaniu. Serwer może zweryfikować token przy pierwszym użyciu i zapisać wynik sprawdzenia w pamięci podręcznej z czasem wygaśnięcia, który jest odnawiany przy każdym żądaniu. Każde żądanie wymagające uwierzytelnienia jest zwracane, 401
jeśli nie zostanie podane.