我们构建了一个rails 2.3.2应用程序,并使用active_record_store存储会话的登录/注销机制。
Ruby 1.8.7
Rails 2.3.2
Server : Apache (Passenger 4.0.59)
config.action_controller.session_store = :active_record_store
一旦用户点击退出按钮,我们就会使用rails reset_session函数销毁会话,该函数将丢弃并创建一个新会话。成功注销后,用户将重定向到已创建会话的登录页面。用户登录再次使用用户名密码然后用户信息将存储在创建的会话中。
问题吗
如何在成功登录后重置会话(用户名 - 密码)并将用户信息存储到新会话中? 我想在没有设备gem的情况下解决这个问题。
我试过执行reset_session函数,但它只是一个空哈希。
def login
p session.session_id #7bb32e02c4495b192b233089b0d586c7
reset_session
p session # {}
p session.session_id # nil
a = authenticate(username, password)
session[:app_id] = a.id
end
def logout
#old session
#5a4c229eba44d63058c50a23b104d6f6b6b981bb
reset_session
# new session
#7bb32e02c4495b192b233089b0d586c7
redirect_to_login
end
这是一个不正确的会话管理VAPT问题(安全问题)。
请帮我解决这个问题。