1

各クライアントは、サーバーへのすべての要求とと​​もに渡されるハッシュによって識別されます。この場合、ユーザー セッションの追跡を処理する最善の方法は何ですか?

ユーザーアカウントなどにrestful_authenticationを使用しています。リクエストの大部分は、ユーザーアカウントなしで一意のハッシュのみで発生すると予想されます。

セッションの処理方法についての私の理解は限られているため、そのことを心に留めておいてください。:)

4

2 に答える 2

2

URL でこのハッシュを使用すると、Rails 組み込みセッションがないことを意味します。セッションのポイントは、リクエスト間の状態の感覚を提供することです。あなたはすでにこの状態を提供しており、このハッシュを渡しているので、私の意見では、restful_authentication プラグインを削除して、代わりに次のようなことを行うことができます。

class ApplicationController < ActionController::Base
  def require_login
    if params[:access_key]
      @current_user = User.find_by_access_key(params[:access_key]) || restrict_access
    else
      restrict_access
    end
  end

  def restrict_access
    flash[:error] = "You have to log in to access that."
    redirect_to root_path
  end
end

次に、before_filter :require_loginアクセスにログインが必要なコントローラーで a を実行します。

于 2008-12-25T10:08:07.173 に答える
1

何をしようとしているのかにもよりますが、sessionハッシュはあなたが望むものを提供するかもしれません。セッションはどこかに (暗号化された Cookie、データベース、またはサーバー上のファイルのいずれか) に保存され、一意の識別子 (「ハッシュ」と同様) を Cookie でクライアントに送信します。session後続の要求では、Cookie が読み取られ、対応するユーザーのセッション データがハッシュに復元されます。

session[:user] = currently_logged_in_user.id
# ... next request ...
session[:user] # returns the currently logged in user's id
于 2008-12-22T20:10:15.820 に答える