Rest-клиент войти в систему с помощью authlogic
-
21-09-2019 - |
Вопрос
Я пытаюсь использовать драгоценный камень 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, подобных тому, что вы делаете здесь.
Видеть: Документы здесь