ユーザーログインのある Drupal サイトがあります。このサイトには Flash アプリケーションが埋め込まれており、一部のデータをすべてのユーザーに表示しますが、ユーザーがログオンしている場合は追加機能を使用できます。Flash 内から、XMLRPC を使用して system.check メソッド (ユーザーがログインしているかどうかを判断するため) と user.login メソッド (Flash 内からユーザーをログインさせるため) にアクセスしています。
Flash 内では、すべて正常に動作します。ただし、Flash ログイン状態は、サイトの残りの部分に対応していないようです。たとえば、XMLRPC 経由で user.login を呼び出した場合、その後の system.check の呼び出しではログインしていると表示されますが、Drupal ユーザー ページにはまだログアウトしていると表示されます。または、両方の場所にログインしていて、Drupal ユーザー ページからログアウトした場合、次に system.check を呼び出すと、まだログインしていることがわかります。
Drupal GUI と組み込み Flash アプリの間でログイン状態を一致させるにはどうすればよいですか?
(注: XMLRPC ライブラリは使用していません。必要な XML を手動で構築し、URLRequest オブジェクトを使用して POST メソッドを送信しているだけです。)
編集:この質問と Web プロキシでのテストにより、ユーザー ログイン ページから返された SESS Cookie が取得され、フラッシュ アプリケーションによって送り返されていることを確認しました。
編集: そして今、Flash (Safari 経由) が同じ Cookie を送信している場合でも、XMLRPC サービスに接続すると、HTML ページを要求したときとは異なる Cookie が返されることを実験的に示しました。言い換えれば、Drupal はこの種の同期をサポートしていないだけで、私は立ち往生しています。以下の回答を受け入れて、正しい軌道に乗せました。
編集: この記事の執筆時点では、AMHPHP は Drupal6 用に完全にはリリースされていませんが、とにかくサイトにインストールされていることが判明しました。DrupalSiteライブラリを使用すると、Flash からサイトへのログインとログアウトを非常に簡単に行うことができ、ログインは Flash と HTML 間で一貫したままでした。