0

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

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

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

我究竟做错了什么?

4

1 回答 1

1

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

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

于 2012-06-21T02:30:44.643 回答