2012-06-21 123 views
0

我有需要讓用戶更改他們的密碼。我想在會話中切換密碼以反映這個新密碼,而不登出它們。Rails3用戶更改密碼,如何更改當前會話密碼?

def set_auth username, password 
    # test username and password here? 
    auth_object = AuthCookie.new 
    auth_object.set_username username 
    auth_object.set_password password 
    session[:user_login] = auth_object 
end 

我使用類似上面的,但它似乎並沒有改變當前會話的密碼爲新的一個剛剛進入使用工作。

我在做什麼錯?

+0

爲什麼你在會話中存儲他們的密碼呢?僅僅知道用戶已經成功通過身份驗證就足夠了嗎? – sarnold

+0

你在這裏略過了一些細節。什麼不適合你?分享表示失敗的代碼的細節。謝謝。 – Anil

回答

1

不要將整個認證對象保存在會話中,最重要的是你不應該在會話中保存密碼信息。 Rails的默認會話存儲是基於cookie的,只是base64編碼字符串。因此,如果您在會話中保存用戶密碼信息,則存在安全問題。

只要在會話中標識用戶,例如user_id即可。 session[:user_id] = user_id