PerlでWebフローの一部を実行してから、残りのセッションをFirefoxに転送することは可能ですか?
時々500を返すWebサイトに(Perlで)ログインを再試行する必要があります。ログインが成功すると、認証されたセッションをFirefoxに転送し、そこから通常のブラウジングを続行できます。これは可能ですか?
これが可能な場合、どうすればよいですか?Cookie/セッションなどを転送する方法に関するリソースを教えてください。
2 に答える
トリッキー。サーバーをサードパーティのサービスにログインさせてから、セッションCookieをユーザーに提供し、ユーザーをサードパーティのアプリにリダイレクトすることはできません。Cookieはドメイン固有であり、ドメインは別のドメインからのCookieまたは別のドメインによって設定されたCookieにアクセスできないため、これは機能しません。
したがって、サービスはサードパーティサービスへのインターフェイスとして機能する必要があり、そのため、サーバー上でユーザーセッションを維持する必要があります。このユーザーセッションは、ユーザーを追跡し、サードパーティのサービスにログインし、必要に応じてサードパーティのサービスにリクエストを送信します。サーバー上のセッションは、このサードパーティサービスのhttpクライアントになるため、Cookieを正しく処理できる必要があります。つまり、ブラウザを模倣する必要があります。
ユーザーセッションの設定と維持に関しては、これを支援するためのCPANモジュールがいくつかあります。
Perlでのユーザーセッションの管理の詳細については、を参照してください。https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-1044683.html
編集:一部のWebサービスは、クライアントがCookieを拒否したときに、URLにセッションIDを挿入することでユーザーセッションを管理できます。サードパーティのサービスがこれを行う場合は、ログイン応答URLをユーザーへのリダイレクトとして提供することができます。ただし、セッションがIPにバインドされている場合、これは機能しなくなります。