В настоящее время я пишу API для обслуживания своего веб-приложения. APP ориентирован на клиентскую сторону, с поддержкой javascript маршрутизации и рендеринга и т. Д. В интерфейсе. Для повышения масштабируемости API является полностью отдельным ресурсом. Имея эту настройку, мне нужно постоянно обращаться к API с передней стороны для получения различных типов данных.
Некоторые из услуг, предоставляемых API, должны быть доступны только авторизованному пользователю. Поэтому всякий раз, когда пользователи регистрируются, они являются авторизованной стороной сервера и создается access_token
, которые должны быть переданы через заголовок HTTP Auth.
или в виде строки запроса для каждого запроса к защищенной службе. Моя задача состоит в том, чтобы автоматизировать авторизованные запросы и избежать компрометации «RESTfulness» API, которые мне нужно будет хранить access_token
в кеше на стороне клиента в краткосрочной перспективе и в качестве файла cookie для возвращающихся пользователей.
Вопрос в том, имеет ли смысл санкционировать таким образом? Я чувствую, что мне не нужно использовать oauth на этой стадии разработки, потому что API будет использоваться только APP. Кроме того, безопасно хранить «долгоживущий» токен в кеше клиента или в файле cookie, чтобы сохранить состояние входа?RESTful API-авторизация через клиента
ответ
На самом деле большинство ответов, которые вы просите, уже находятся в решении, которое вы сделали, сначала позвольте мне сказать, что да, полезно использовать cookie для пользователя, чтобы вам не нужно снова выполнять проверку подлинности и снова, что уменьшает нагрузку на ваш сервер, плюс, поскольку вы получили это далеко, я уверен, что вы уже знаете, что вам нужно только один раз выполнить проверку подлинности, и сервер узнает пользователя так, как вы это делали, и остальные запросы - это в основном запросы api, сделанные для этого аутентифицированного пользователя. Предпочитаю короткий живый печенье, или позвольте мне сказать, что я предпочитаю очень короткий живой куки для этого вопроса, и этот файл cookie должен быть сделан с тайм-аутом на основе взаимодействия с сервером клиента, таким образом вы можете убедиться, что когда пользователь отключен на некоторое время, безопасно очистить сеанс от вашего сервера, и вы можете поддерживать как-то защищенную среду. Надеюсь, я ответил на ваш вопрос и прошу прокомментировать, если я вас неправильно понял.
- 1. RESTful Аутентификация клиента Android
- 2. Создание клиента для службы RESTful
- 3. RESTful вызов HTTPS-сервера из java-клиента
- 4. Использование Mailgun RestFUL на стороне клиента
- 5. Не удалось создать клиента службы WCF RestFul
- 6. RESTful Services - Избегайте stacktrace для клиента
- 7. Создание RESTful клиента HTTP для PCL
- 8. Написание клиента для API RESTful (hypermedia)
- 9. Предоставляет ли SSL аутентификацию клиента (RESTful)?
- 10. Создание клиента веб-службы RESTful в Eclipse
- 11. Написание первого RESTFul Webservice и клиента
- 12. Обратное изображение через RESTful webservice
- 13. Restful URL через файл свойств
- 14. Вызов RESTful WS через API-интерфейс restlet
- 15. Преимущества клиента Netty через клиента ввода-вывода?
- 16. Какие модули Perl хороши для написания клиента веб-API RESTful?
- 17. HATEOAS Для клиента на основе браузера, использующего веб-API RESTful
- 18. PHP RESTful API, доступ к данным клиента POST Джерси
- 19. Rails: как RESTful модели запросов через ассоциации?
- 20. RESTful маршруты для has_many: через отношения?
- 21. Изменение динамического источника VideoJS через RESTful API
- 22. Манипулирование сборкой через REST (RESTful) API
- 23. Вытягивание через restful API с помощью jQuery
- 24. Потребление ответа RESTful через угловое обслуживание
- 25. Как управлять пулом через интерфейс RESTful
- 26. Restful WCF и базовая аутентификация через Fidder
- 27. Дизайн запроса Elasticsearch через RESTful API
- 28. Использование многостраничных/форм-данных через RESTful CXF
- 29. Как вставить в рельсах дб через внешний RESTful вызов
- 30. Веб-приложение полностью через клиента
На самом деле я не уверен, что понимаю концепцию: «вам нужно только сделать аутентификацию один раз, и сервер узнает пользователя». Я мог бы, естественно, разместить серверную часть '$ _SESSION' (с учетом PHP) на указать зарегистрированное состояние, но это не будет RESTful способом, мне нужно, чтобы клиенты передавали полный объект запроса, включая токен аутентификации при каждом запросе. Вы говорите, что клиентская сторона кэширует заголовок «HTTP Auth» и передает это автоматически после первоначального запроса? –
Вы правы, файлы cookie основаны на HTTP, а не независимы от протокола и не очень спокойны, но все же удается быть очень хорошим решением, и, чтобы быть понятным, клиент не должен работать с файлом cookie или пытаться его интерпретировать просто нужно доставить его на сервер, тем не менее, лучший способ сделать это - проверка подлинности запроса (см. это: http://broadcast.oreilly.com/2009/12/principles-for-standardized-rest-authentication.html) , но я не очень большой поклонник передачи большого количества данных в uri –
Хорошо, хорошо читайте! Кажется, я могу безопасно выполнить свой проект с помощью SSL-сертификата. Спасибо за ваше время. –