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