Rest-клиент войти в систему с authlogic - PullRequest
5 голосов
/ 20 февраля 2010

Я пытаюсь использовать гем Rest-client, чтобы выполнить несколько небольших задач для моего приложения, которое использует Authlogic для аутентификации пользователей. Из API Rest-Client я вижу, что можно публиковать данные, необходимые для процесса входа в систему, следующим образом:

require 'rest_client'
RestClient.post "http://127.0.0.1:3000/user_sessions", {:user_session => {:username => 'myusername', :password => 'mypassword'}}.to_json, :content_type => :json, :accept => :json

Глядя на мой журнал разработки, я вижу, что приложение вошло в меня и правильно перенаправило меня на личную страницу пользователя. Однако когда я попытался «перезагрузить» личную страницу,

RestClient.get 'http://127.0.0.1:3000/users/1'

Меня снова возвращают на страницу входа, как будто я не вошел в систему. Поэтому мне было интересно, связано ли это с чем-то, называемым сеансом или файлами cookie?

Я использовал cURL для успешного воспроизведения этого сценария, где я использую ключ '-c cookie.txt', чтобы сохранить информацию о моем входе в систему, и использую ключ '-b cookie.txt' для каждого вызова расскажите удаленному серверу о моей аутентификации. Я могу понять эту концепцию, как печать на вашем запястье, когда вы идете в тематический парк или бар, где они знают, что вы заплатили. Но я не нахожу упоминания о таком механизме в RestClient. Любая помощь будет здорово решить эту проблему. Я тоже не против попробовать http-клиентов.

Привет

1 Ответ

7 голосов
/ 20 февраля 2010

Если вы используете Authlogic, вы можете использовать одноразовый токен вместо user / pass. Токен одноразового использования специально для вызовов API, таких как, по вашему мнению, здесь.

См .: Документы здесь

...