Вопрос по рельсам веб-сервиса и аутентификации - PullRequest
0 голосов
/ 17 декабря 2009

То, что я делаю, - это API-интерфейс rails web service, который позволяет пользователю создавать журнал путешествий при доступе к любым сайтам с помощью плагина firefox. Для этого требовалось 2 вещи.

  1. skip_before_filter: verify_authenticity_token в конкретном контроллере (поскольку я позволяю пользователю создавать его через API, а не через форму, поэтому я отключаю это).
  2. пользователь должен указывать имя пользователя и пароль при каждом запросе (например, curl -u username: pass -d "..." http://localhost:3000/logs).

Я хочу спросить:

  • могу ли я сделать это проще, позволив моему Плагин Firefox попросить пользователя войти затем используйте куки, поэтому не нужно отправлять пароль пользователя каждый раз с запрос.
  • Является ли skip_before_filter: verify_authenticity_token плохим или необходимым для этого действием?

Спасибо

1 Ответ

0 голосов
/ 17 декабря 2009

Когда Rails отображает форму, оно включает скрытое поле с длинной строкой (токен аутентификации). Фильтр verify_authenticity_token гарантирует, что пользователь отправил форму, которую фактически отображал сервер (в отличие от подделки запроса POST, как это делают хакеры). Если вы используете куки и сеансы, вам действительно нужно прочитать о том, как это работает и попытаться настроить его для работы с вашим плагином.

Однако почему бы вместо этого не использовать базовую аутентификацию HTTP ? Это немного быстрее, чем отправка файла cookie при каждом просмотре страницы, и его гораздо проще настроить. Как вы говорите, вы можете запросить у вашего плагина имя пользователя / пароль и отправлять их при каждом запросе.

Если вам нужно хранить пользовательские данные в сеансах, вам придется использовать куки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...