背景 - 我在登录新用户之前执行reset_session
但我还想将特定数据绑定到用户的会话,以便我使用以下方式识别每个会话session_id
。我想在成功登录后执行此操作与某种before_filter
检查每个请求但执行reset_session
之后无法创建新的session_id
。
在同一个请求中执行reset_session
后,是否有人知道如何使用session_id生成新会话?
> session.class
=> Rack::Session::Abstract::SessionHash
> session[:session_id]
=> "01aa3b8e7c7c26ab82b7a57e2b0f749b"
> reset_session
=> nil
> session.class
=> Hash
> session[:session_id]
=> nil
我看到一篇帖子说这是错误但它已经3岁了,除了提出另一个请求之外,它没有提及任何获得新会话ID的方法。
> tmp = session.dup
=> {"session_id"=>"01aa3b8e7c7c26ab82b7a57e2b0f749b", ...}
> reset_session
=> nil
> session.replace(tmp)
=> {"session_id"=>"01aa3b8e7c7c26ab82b7a57e2b0f749b", ...}
> session[:session_id]
=> nil
其他一些人还提到重复会话并替换会话,但这不会创建新的session_id