4

是否可以在 Perl 中完成部分网络流程,然后将会话的其余部分转移到 Firefox?
我需要重试(使用 Perl)登录到一个网站,该网站在成功登录时不时返回 500,将经过身份验证的会话转移到 Firefox,从那里我可以继续正常浏览。这可能吗?
如果这是可能的,我该怎么做?您能否指出一些有关如何传输 cookie/会话等的资源?

4

2 回答 2

6

对我来说,似乎在 Firefox 内部做所有事情更有意义......并从外部控制它。MozRepl(FF 扩展)和MozRepl(Perl 模块)可以帮助您实现目标。

于 2009-12-12T19:29:38.057 回答
2

棘手。您将无法让您的服务器登录到第 3 方服务,然后只需将会话 cookie 提供给您的用户,并将他重定向到第 3 方应用程序。这将不起作用,因为 cookie 是特定于域的,并且域无法访问来自另一个域或由另一个域设置的 cookie。

因此,您的服务需要充当第三方服务的接口,因此您需要在服务器上维护用户会话。此用户会话跟踪您的用户,将登录到第三方服务,并在适当的时候向第三方服务发出请求。您服务器上的会话将成为该第 3 方服务的 http 客户端,因此它需要能够正确处理 cookie - 即模仿浏览器。

在设置和维护用户会话方面,将有许多 CPAN 模块来帮助您。

有关在 Perl 中管理用户会话的更多信息,请参阅https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-1044683.html

编辑:当客户端拒绝 cookie 时,一些 Web 服务可以通过将会话 ID 注入 URL 来管理用户会话。如果您的第 3 方服务会执行此操作,您可能只需提供登录响应 URL 作为重定向到您的用户。但是,如果会话绑定到 IP,这将中断。

于 2009-12-12T15:41:21.263 回答