我需要让用户更改密码。我想在会话中切换密码以反映这个新密码,而不记录它们。
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 :(得分:1)
不要将整个身份验证对象保存在会话中,最重要的是您不应该在会话中保存密码信息。 Rails默认会话存储是基于cookie的,只是base64编码字符串。因此,如果您在会话中保存用户密码信息,则存在安全问题。
只需将用户标识放在会话中,例如user_id即可。 session[:user_id] = user_id