Ruby on rails 处理所有rails请求共用的用户id哈希的最佳方法

Ruby on rails 处理所有rails请求共用的用户id哈希的最佳方法,ruby-on-rails,ruby,web-services,request,Ruby On Rails,Ruby,Web Services,Request,每个客户端都由一个散列来标识,并与每个请求一起传递给服务器。在这种情况下,处理跟踪用户会话的最佳方法是什么 我正在对用户帐户等使用restful_身份验证。大部分请求都是在没有用户帐户但只有唯一哈希的情况下发起的 我对会话处理方式的理解有限,因此请记住这一点。:) 取决于您试图做什么,但是会话散列可能会提供您想要的内容。会话将自身存储在某个位置(加密的cookie、数据库或服务器上的文件),并在cookie中向客户端发送唯一标识符(类似于“哈希”)。在后续请求中,将读取cookie,并将相应用户

每个客户端都由一个散列来标识,并与每个请求一起传递给服务器。在这种情况下,处理跟踪用户会话的最佳方法是什么

我正在对用户帐户等使用restful_身份验证。大部分请求都是在没有用户帐户但只有唯一哈希的情况下发起的


我对会话处理方式的理解有限,因此请记住这一点。:)

取决于您试图做什么,但是
会话
散列可能会提供您想要的内容。会话将自身存储在某个位置(加密的cookie、数据库或服务器上的文件),并在cookie中向客户端发送唯一标识符(类似于“哈希”)。在后续请求中,将读取cookie,并将相应用户的会话数据还原到
会话
哈希

session[:user] = currently_logged_in_user.id
# ... next request ...
session[:user] # returns the currently logged in user's id

在URL中使用此哈希表示您没有Rails内置会话。会话的要点是在请求之间提供某种状态感。您已经提供了这个状态,看到您正在传递这个散列,所以我认为您可以删除restful_身份验证插件并执行类似的操作:

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
class ApplicationController
然后,在需要登录才能访问的控制器中,在\u过滤器之前执行
:要求\u登录