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