警告:このうちのいくつかは間違っている可能性がありますので、私の前提が間違っている場合にお知らせください。私は、ログインのための安らかな認証を使用していRails/ActiveRecordセッションとRestful-authentication:セッションテーブルはいつ書き込まれますか?
:
は、ここで私が達成しようとしているものです。しかし、自分のUIにflex/ruby_amfを使用しているので、flexから各接続を別々に認証する必要があります。
これを行う方法は、ログイン画面を埋め込みのFlashページにリダイレクトし、session-idをflashvarとして挿入することでした。フラッシュアプリケーションは、すべての要求と共にsession-idを送信し、関連するすべてのコントローラのbeforeフィルタは、session-idで識別されるセッションに関連付けられたユーザがログオンしているかどうかを確認します。
ユーザをセッションに関連付ける方法は、セッションテーブルに 'user_id'カラムを追加し、ログイン機能から呼び出されたsql "update sessions set user_id ... '"タイプのクエリを実行することです。
ただし、user_idはユーザが2回目にログインしたときにのみ更新されます。少し調べてみると、セッションテーブルのレコードはログイン機能の実行中にまだ存在していませんでした。
この時点まで、あらゆるアップは理にかなっている、となど、ベストプラクティスに準拠している場合ので、その後、私の質問は次のとおりです。
どの時点での時間では、作成されたセッションテーブルのレコードのですか?ログイン機能でセッションオブジェクトを更新する方法はありますか?また、私のためにデータベースにuser_idを書き込むようにしましたか?
レールでのセッションの振る舞いは私にとって本当の謎です。私はどんな助けにも感謝しています。
ありがとうございます。
PS:ここではセッションテーブルの更新についてのディスカッションがあります: http://www.nabble.com/Rails-2.3-Sessions-td22720164.html – krispyfi
問題をもう少し詳しく調査していますが、セッションオブジェクトがセッションテーブルの行に対応しているという誤った前提の1つと考えています。セッション[:user_id] = Users.authenticate(name、pass)を実行してからsession.saveを実行してDBに書き込むことができることを期待していました。実際には(私が間違っている場合は私を修正!)、セッションオブジェクトは、データ列としてエンコードされた形式で表示されます。 私がやっていることは基本的に正しいと言っている別のリンクです: http://scottiestech.info/2009/04/02/rails-23-how-to-access-custom-columns-in-the-セッションテーブル/ – krispyfi