Например, когда у пользователя есть логин. Теперь допустим, что пользователь хочет создать тему форума. Как я узнаю, что пользователь уже вошел в систему?
Подумайте об этом - должно быть какое-то рукопожатие, которое сообщает вашему API «Создать форум», что этот текущий запрос исходит от аутентифицированного пользователя. Поскольку API-интерфейсы REST обычно не имеют состояния, состояние должно где-то сохраняться . Ваш клиент, использующий REST API, отвечает за поддержание этого состояния. Обычно это в форме некоторого токена, который передается с момента входа пользователя в систему. Если токен в порядке, ваш запрос верен.
Проверьте, как Amazon AWS выполняет аутентификацию. Это прекрасный пример «перекладывания денег» с одного API на другой.
* Я подумал добавить практический ответ на свой предыдущий ответ. Попробуйте Apache Shiro (или любую библиотеку аутентификации / авторизации). Итог, старайтесь избегать нестандартного кодирования. После того, как вы интегрировали свою любимую библиотеку (я использую Apache Shiro, кстати), вы можете сделать следующее:
- Создайте API входа / выхода, например:
/api/v1/login
иapi/v1/logout
- В этих API входа и выхода выполните аутентификацию в своем хранилище пользователей.
- Результатом является токен (обычно
JSESSIONID
), который отправляется обратно клиенту (веб, мобильный, что угодно).
- С этого момента все последующие вызовы, сделанные вашим клиентом, будут включать этот токен
- Допустим, ваш следующий вызов сделан в API с именем
/api/v1/findUser
- Первым делом этот код API проверит токен («аутентифицирован ли этот пользователь?»)
- Если ответ возвращается как НЕТ, вы возвращаете клиенту статус HTTP 401. Позвольте им справиться с этим.
- Если ответ ДА, то приступайте к возврату запрошенного пользователя
Вот и все. Надеюсь это поможет.