2009-12-12 2 views
4

Возможно ли сделать часть веб-потока в Perl, а затем передать оставшуюся часть сессии Firefox?
Мне нужно повторить попытку (с помощью Perl) войти на веб-сайт, который возвращает 500 каждый раз, после успешного входа в систему, передавать аутентифицированный сеанс в Firefox, откуда я могу продолжить обычный просмотр. Это возможно?
Если это возможно, как мне это сделать? Можете ли вы указать мне некоторые ресурсы о том, как передать файл cookie/сеанс и т. Д.?Как я могу автоматизировать и обмениваться сеансами между Firefox и Perl?

ответ

6

Мне кажется, что имеет смысл делать все, что угодно, изнутри Firefox ... и контролировать это извне. MozRepl (расширение FF) и MozRepl (модуль Perl) могут помочь вам добраться туда.

2

Tricky. Вы будете не сможете подключить ваш сервер к сторонней службе, а затем просто передать cookie сессии своему пользователю и перенаправить его на стороннее приложение. Это не будет работать, поскольку файлы cookie являются специфичными для домена, а домены не могут получать доступ к файлам cookie или устанавливать их другим доменом.

Таким образом, ваш сервис должен будет действовать как интерфейс к стороннему сервису, и поэтому вам необходимо будет поддерживать сеанс пользователя на вашем сервере. Этот сеанс пользователя отслеживает вашего пользователя, будет регистрироваться в стороннем сервисе и, при необходимости, будет обращаться к стороннему сервису. Сеанс на вашем сервере будет http-клиентом для этой сторонней службы, поэтому он должен будет правильно обрабатывать файлы cookie, т. Е. Имитировать браузер.

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

Для получения дополнительной информации об управлении пользовательскими сеансами в Perl см https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-1044683.html

Edit: некоторые веб-сервисы могут управлять пользовательскими сеансами, вводя идентификатор сессии в URL, когда клиент отказывается от печенья. Если ваша сторонняя служба сделает это, вы можете просто подать URL-адрес ответа на вход в качестве перенаправления на пользователя. Однако это будет нарушено, если сеансы привязаны к IP.

+1

Почему вы говорите, что не можете этого сделать? Ваш скрипт Perl использует файл cookie Firefox, сохраняет все новые куки-файлы, которые он получает, в тот же файл cookie, а затем перезагружает Firefox, который затем использует тот же файл cookie. Я иногда это делаю, поэтому я парень, который написал много модулей HTTP :: Cookies. –

+0

@brian: Возможно, я неправильно понял вопрос. Я думал, что он говорит о веб-службе, которая вошла в какую-то другую службу, передав сеанс своему пользователю. –

Смежные вопросы