我有點新的軌道,我想要的就是保護用戶個人資料Rails 3中,如何保護和保護控制器和URL
我的意思是,如果用戶登錄1,進入編輯他的個人資料他可以,而且如果他改變URL以用戶#2他們也可以改變他們的信息
本地主機:3000 /用戶/ 2 /編輯
我有點失落,任何幫助將是非常感謝,或者好書/博客的建議
我有點新的軌道,我想要的就是保護用戶個人資料Rails 3中,如何保護和保護控制器和URL
我的意思是,如果用戶登錄1,進入編輯他的個人資料他可以,而且如果他改變URL以用戶#2他們也可以改變他們的信息
本地主機:3000 /用戶/ 2 /編輯
我有點失落,任何幫助將是非常感謝,或者好書/博客的建議
作爲身份驗證的一部分,添加一個sessi on variable,session [:user_id] = User.Authenticate(params [:user] [:username],params [:user] [:password)(這是一般模式,您需要添加另一個資源進行身份驗證)。
然後添加一個before_filter函數到您的控制器,並檢查會話[:user_id] == params [:id]。看看這裏:before_filter
的Rails Security Guide可能是開始
以防萬一,這是有用的人的好地方,我測試我的應用程序是,當碰到東西,雖然說還沒有登錄用戶無法訪問受限制的內容,一旦用戶登錄,他們可以將網址更改爲另一個用戶ID,例如。
/users/3
然後它會顯示用戶的主頁。所以任何用戶都可以看看其他用戶,這不是我想要的。
要解決這個問題,我改變了用戶控制,以確保對這樣的:
class UsersController < ApplicationController
#first call the correct_user function before allowing the show action to proceed
before_filter :correct_user, only: [:show]
...
def show
#do whatever here
end
...
private
def correct_user
@user = User.find(params[:id])
redirect_to(root_path) unless current_user?(@user)
end