Вопрос

Я пытаюсь использовать драгоценный камень 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-клиенты.

С уважением

Это было полезно?

Решение

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

Видеть: Документы здесь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top