gpt4 book ai didi

ruby-on-rails - 如何在 Rails 3 中的 reset_session 命令之后找到新的 session_id?

转载 作者:行者123 更新时间:2023-12-03 17:59:03 28 4
gpt4 key购买 nike

我按照 here 使用命令“reset_session”以避免 session 固定。

运行命令后,我想将新生成的 session_id 存储在数据库中,但 session[:session_id] 未定义。

我写了一个简单的测试:

class ApplicationController < ActionController::Base
protect_from_forgery
after_filter :after_test
def after_test
RAILS_DEFAULT_LOGGER.debug "Old Session: #{session.inspect}"
reset_session
session[:random_number] = ((rand*1000).to_i)
RAILS_DEFAULT_LOGGER.debug "New Session: #{session.inspect}"
end
end

两个连续页面加载的日志结果是:
Started GET "/" for 127.0.0.1 at 2011-04-16 11:42:57 +0200
Processing by WelcomeController#index as HTML
Rendered welcome/index.html.erb within layouts/application (1.9ms)
Old Session: {"random_number"=>519, "session_id"=>"d17df62e286f20bd25e2714ee4f58020", "_csrf_token"=>"NkD5ZjG/RYLolfRy0ADmr+h+Sp2TXEOQlc6HhNpyp/g="}
New Session: {:random_number=>172}
Completed 200 OK in 7ms (Views: 6.4ms | ActiveRecord: 0.0ms)


Started GET "/" for 127.0.0.1 at 2011-04-16 11:42:58 +0200
Processing by WelcomeController#index as HTML
Rendered welcome/index.html.erb within layouts/application (2.0ms)
Old Session: {"random_number"=>172, "session_id"=>"54f46f520c80044a9f5475af78a05502", "_csrf_token"=>"9skbBEN35jQYRgH9oQVz1D5Hsi/o9l7fm7Qx9XDNETc="}
New Session: {:random_number=>497}
Completed 200 OK in 7ms (Views: 6.4ms | ActiveRecord: 0.0ms)

如您所见,随机数 (172) 已正确传递到第二页,但新 session 未显示新 session ID。

我认为新的 session ID(“54f46f520c80044a9f5475af78a05502”)是在“after_filter”之后生成的,但我不知道如何检索它。

最佳答案

是的,rails 有这个问题。有票- https://rails.lighthouseapp.com/projects/8994/tickets/2200-session-support-broken

正如你所看到的,它还没有得到解决。

关于ruby-on-rails - 如何在 Rails 3 中的 reset_session 命令之后找到新的 session_id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5685718/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com