Rails3用户更改密码,如何更改当前会话密码?

时间:2012-06-21 02:24:06

标签: ruby-on-rails session

我需要让用户更改密码。我想在会话中切换密码以反映这个新密码,而不记录它们。

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

我使用类似上面的内容,但它似乎无法将当前会话的密码更改为刚输入的新密码。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

不要将整个身份验证对象保存在会话中,最重要的是您不应该在会话中保存密码信息。 Rails默认会话存储是基于cookie的,只是base64编码字符串。因此,如果您在会话中保存用户密码信息,则存在安全问题。

只需将用户标识放在会话中,例如user_id即可。 session[:user_id] = user_id