在rails 2.3.2 app中,帖子前登录会话ID没有变化?

时间:2016-11-10 14:55:40

标签: ruby-on-rails ruby session devise

我们构建了一个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问题(安全问题)。

请帮我解决这个问题。

0 个答案:

没有答案