Печенье - я могу быть без ума с рубином / рельсами - PullRequest
1 голос
/ 21 сентября 2011

Можно ли войти в систему с помощью net / http или curl, сохранить ответ файла cookie, а затем записать этот файл cookie в браузер пользователя, чтобы я мог «подтолкнуть вход» (в некотором смысле)?

Есть ли другой способ сделать это, это вообще возможно, или я просто сумасшедший?

Я знаю, как мне войти в систему с помощью net / http, сохранить cookie и делать что-то на стороне сервера.

Я просто не хочу тратить время на сохранение файла cookie в базу данных, а затем записывать его в браузер и при успешном перенаправлении браузера, если это невозможно из-за ограничений безопасности.

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Похоже, что это подходит для входа в систему на основе authentication_token, при условии, что ссылка верна (например, http://www.example.com/posts/new?auth_token=1asdfj2828728we924834),, пользователь автоматически авторизуется. Выйти из устройства: http://www.hyperionreactor.net/blog/token-based-authentication-rails-3-and-rails-2

1 голос
/ 21 сентября 2011

Вы можете писать куки только для текущего домена - поэтому, если вы хотите эффективно подключиться к domainb.com с domaina.com через net / http, прочитайте куки, возвращенные с domainb.com, и предварительно установите их для пользователя доперенаправив их на domainb.com, тогда это не сработает.

Однако, если вы просто хотите прочитать возвращенные куки с domainb.com и эффективно продублировать их на domaina.com, то нет никаких причин, по которым вы можете это сделатьне делай этого.Что-то вроде:

# perform your request...
# once the response has been returned, loop through each cookie
response.get_fields('set-cookie').each do |cookie|
  # set your local cookie here
end

Если вы хотите реализовать автоматический вход между двумя доменами, я нашел лучший способ сделать это:

1) domaina.com говорит: «Привет, яУ меня есть пользовательский ABC, могу ли я получить для него токен аутентификации? "в API домена .bb2) API domainb.com создает токен для этого пользователя, ограничивая срок действия до 1 минуты, а затем отправляет его в ответ на domaina.com 3) domaina.com перенаправляет пользователя на domainb.com с токеном аутентификации, переданным в качестве параметра4) domainb.com получает запрос пользователя (от перенаправления), ищет токен в БД, затем автоматически регистрирует пользователя, если он найден

Конечно, для этого требуется, чтобы вы управляли системамиоба домена ... если вы этого не сделаете, вероятность того, что oauth будет вашим лучшим механизмом межсайтовой аутентификации.

...