С запросами GET вы ограничены заголовками запроса и строкой запроса / URL вашего запроса. Вы можете использовать HMAC подход или OAUTH , где каждый запрос «подписан». Если вы делаете это исключительно на стороне клиента, существует проблема с общим секретом, который больше не является, ну, в общем, секретным.
Конечно, похоже, что вы уже делаете POST-запросы, используя имя пользователя и пароль (что я очень не рекомендую, кстати)
Если вам нужны примеры HMAC в действии, я полагаю, что Amazon использует (или использовала) HMAC для взаимодействия с S3, поэтому существует множество примеров кода.
В конечном итоге, веб-клиенту очень трудно выполнить аутентификацию без сохранения состояния без раскрытия некоторой «секретной» информации, такой как пароли или закрытые ключи / токены. Вы можете выдать временные токены пользователю, которые затем будут зарезервированы, проверив, что заголовки запроса (IP-адрес и т. Д.) Согласованы в течение срока службы токена. Если вы раскрываете временные токены клиенту, вы, вероятно, захотите, чтобы ваш механизм аутентификации включал также уникальный nonce для запроса.
Чисто RESTful-аутентификация без сохранения состояния нетривиальна, если вы хотите, чтобы веб-клиент выполнял запросы, поэтому я бы не назвал ее REST 101:)