[英]best way to handle user id hash common to all rails requests
每個客戶端由哈希標識,並與每個請求一起傳遞給服務器。 在這種情況下,處理跟蹤用戶會話的最佳方法是什么?
我正在為用戶帳戶等使用restful_authentication。預計很大一部分請求將源於沒有用戶帳戶而只有唯一的哈希。
我對處理會議方式的了解有限,因此請記住這一點。 :)
在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
。
取決於您要執行的操作,但是session
哈希可以提供您想要的內容。 會話將自身存儲在某個位置(加密的cookie,數據庫或服務器上的文件),並在cookie中將唯一的標識符發送給客戶端(類似於您的“哈希”)。 在后續請求中,將讀取cookie,並將相應的用戶會話數據恢復到session
哈希。
session[:user] = currently_logged_in_user.id
# ... next request ...
session[:user] # returns the currently logged in user's id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.