1

私はRubyonRails2.3.5でFlex4(beta2)を使用しており、RubyAMFを使用してFlexとサーバー間でデータを転送しています。

Rails側で認証用にAuthlogicを設定しました。

ユーザーセッションを処理するための最良の方法がわかりませんでした。Railsがユーザーの認証に使用するCookieを使用してセッションIDを送信することにより、これがRailsで自動的に行われることを私は知っています。

Flexでこれを行うための最良の方法を提案しますか?

私はいくつかのオプションを考えました:
1。ブラウザから手動でCookieを取得し、送信するすべてのリクエストでそれをサーバーに送信する方法を考えます。
2.セッションを手動で期限切れにすることにより、Flex側でセッションの期限切れとフローを処理する

他に提案や推奨事項はありますか?

ありがとう、

タム

4

4 に答える 4

2

Flash のネットワーク リクエストはブラウザのネットワーク スタックを使用するため、Flex の Cookie は他のブラウザ アプリケーションと同様に機能します。通常、Flex での認証は、標準の Web アプリケーションでの認証と同じです。セッション ID と関連付けられた資格情報をサーバーに送信します。後続のすべてのリクエスト (RemoteObject、HTTPService など) も、そのセッション ID を送信します。

于 2010-03-10T11:38:12.237 に答える
1

Flex でこれを行う最善の方法は何ですか?

$loggedIn=Authenticate::isAuthenticated();
if(!$loggedIn)return false;
$user=Authenticate::getAuthUser();

最初にユーザーを認証し、ログインしている場合はセッションを作成します。これをすべての PHP または Ruby ファイルに含めて、チェックしてください。セッション ID を Flex に送信して状態を維持し、セッションの有効期限を設定します。

上記のコードは、ユーザーが PHP または Ruby クラス ファイルにアクセスするために認証されているかどうかを確認します。

于 2010-03-10T11:34:45.470 に答える
1

これまで、BlaseDS と HTTPServices を使用してきました。どちらの場合も、リクエストは HTTP 経由でサーバーに送信されます。私たちのサーバー スタックは Java (具体的には JBoss) です。

フレックス クライアントがリクエストと共にセッション情報をサーバーに送信していたことに気付きました。同じ情報を使用して、サーバーにプリンシパルを保存および取得しました。

あるケースでは、トークンをクライアントに伝播しました。これは、同じリクエストに対して複数の送信が行われるのを避けるためでした。そのため、トークン生成の一般的な HTML 送信アプローチを使用しました。このアプローチでは、すべてのレスポンスがそれ自体で新しいトークンを持ち、クライアントは次のリクエストを実行するためにそれをサーバーに送り返す必要があります。

セッションの有効期限については、ユーザーがローカルのニーズのためにクライアントで作業していて、サーバーで作業していない可能性が高く、サーバーに影響を与えずにサーバーで期限切れになった可能性があります。この場合、サーバーでセッションの有効期限を無効にし、フレックス クライアントでキーボードとマウスのイベントを処理するカスタム コードを記述しました。アプリケーションが指定された時間使用されなかった場合、フレックス クライアントはローカルとサーバーの両方のセッションを期限切れにします。

于 2010-03-10T11:27:35.940 に答える
1

blazeDS (http) リモート呼び出しを行うと、Flash プラグインがセッション cookie を伝搬することがわかりました。

于 2010-03-10T10:24:51.510 に答える