Я интересуюсь слушанием, что приближается, люди взяли при создании УСПОКОИТЕЛЬНОГО (или квазиуспокоительный) API для их веб-приложений.
Практический пример:
Скажите, что у Вас есть традиционное веб-приложение на базе браузера, которое использует защиту CSRF на всех формах. Скрытый вход с маркером защиты CSRF включен в каждую форму, представленную в браузере. После представления формы, если этот вход не соответствует версии серверной стороны маркера, форму считают недопустимой.
Теперь скажите, что Вы хотите выставить веб-приложение как API (возможно, использующий JSON вместо HTML). Традиционно при публикации API, я полагал, что транзакции являются односторонними (значение, что потребитель API создает запрос на основе опубликованного API вместо первого запроса формы и затем создания запроса с помощью возвращенной формы).
"Односторонний" подход терпит неудачу когда вещи как фактор защиты CSRF в. Маркер защиты CSRF должен быть включен в любого, ОТПРАВЛЯЕТ/ПОМЕЩАЕТ/УДАЛЯЕТ отправленный потребителем API.
Я пытался думать, как лучше всего обратиться к этому. При запросе формы каждый раз, когда вызов API должен быть сделан, кажется очень неловким (особенно при контакте с асинхронными операциями), но все другие альтернативы, о которых я думал самостоятельно, кажется, побеждают защиту CSRF (или по крайней мере дыры перфорации в нем), который недопустим.
У какого-либо из Вас есть понимание этого?
Спасибо.
(Не то, чтобы это должно иметь значение слишком много, поскольку проблема концептуальна и агностик платформы, но я имею дело с традиционным стеком LAMP и Symfony 1.4 использования как моя среда разработки приложения. Моя цель состоит в том, чтобы опубликовать сеть JSON-формата разработчики разрешения API для создания мобильных / настольных приложений, которые играют по правилам с существующим веб-приложением.)
REST хорошо сочетается с аутентификацией (то есть с базовой аутентификацией), поэтому попробуйте использовать имя пользователя вашего пользователя. сайт и пароль, относящиеся к приложению, привязанному к этому пользователю - метод, который иногда называют ключами API. Что-то, что делает API FriendFeed , см. Документацию .
Несколько жестких замечаний: