Значна частина філософії REST полягає у використанні якомога більше стандартних функцій протоколу HTTP при розробці вашого API. Застосовуючи цю філософію до аутентифікації, клієнт та сервер використовували б стандартні функції аутентифікації HTTP в API.
Екрани для входу відмінно підходять для випадків використання людьми: відвідайте екран входу, вкажіть користувача / пароль, встановіть cookie, клієнт надає цей cookie у всіх майбутніх запитах. Не можна очікувати, що люди, які використовують веб-браузери, нададуть ідентифікатор користувача та пароль для кожного окремого HTTP-запиту.
Але для API REST, екран входу та файли cookie сеансу не є суворо необхідними, оскільки кожен запит може включати облікові дані, не впливаючи на людину; і якщо клієнт не співпрацює в будь-який час, 401
може бути надіслана "несанкціонована" відповідь. RFC 2617 описує підтримку аутентифікації в HTTP.
TLS (HTTPS) також був би варіантом і дозволяв би аутентифікувати клієнта до сервера (і навпаки) у кожному запиті, перевіряючи відкритий ключ іншої сторони. Крім того, це забезпечує канал для отримання бонусу. Звичайно, для цього необхідний обмін клавіатурою до спілкування. (Зверніть увагу, мова йде саме про ідентифікацію / автентифікацію користувача за допомогою TLS. Захист каналу за допомогою TLS / Diffie-Hellman - це завжди хороша ідея, навіть якщо ви не ідентифікуєте користувача за його відкритим ключем.)
Приклад: припустимо, що маркер OAuth - це ваші повні облікові дані для входу. Після того, як клієнт має маркер OAuth, він може бути наданий як ідентифікатор користувача в стандартній аутентифікації HTTP при кожному запиті. Сервер міг перевірити маркер при першому використанні та кешувати результат перевірки за допомогою програми "Час життя", який поновлюється з кожним запитом. Будь-який запит, що вимагає автентифікації, повертається, 401
якщо його не надано.