gpt4 book ai didi

ruby-on-rails - 使用子域在 rails 2.3.2 应用程序中丢失 session

转载 作者:行者123 更新时间:2023-12-04 06:20:31 27 4
gpt4 key购买 nike

我有一个 2.2.3 的应用程序,我升级到 2.3.2

它是一个多站点(使用子域),可为所有站点创建一个顶级 session 。

这就是我在 production.rb 中更改域的方式:

ActionController::Base.session_options[:domain] = "example.com"

# in rails 2.2.2, this is what i used to do:
# ActionController::Base.session_options[:session_domain] = "example.com"

升级后开始出现奇怪的事情
我无法再使用 Restful 身份验证登录;它确实对我进行了身份验证,但是一旦我被重定向,它就会要求我再次登录。

正如我所说,我使用restful_authentication,我也使用passenger 2.1.2。
任何人都可以帮忙吗?

最佳答案

Olly 的回答是正确的,在 rails 2.3 中应该是:

config.action_controller.session[:domain] = '.example.com'

我只想补充一点,如果您还没有创建一些 session 选项,则在使用它时可能会收到:
undefined method `[]=' for nil:NilClass

在这种情况下,您应该改用它(它会创建 session 变量而不是更新它):
config.action_controller.session ||= {}
config.action_controller.session[:domain] = '.example.com'

编辑:显然 Rails 2.2.2 项目使用不同的东西。 “域”应命名为“session_domain”并去掉域前面的句点字符。尝试这个:
config.action_controller.session ||= {}
config.action_controller.session[:session_domain] = 'example.com'

关于ruby-on-rails - 使用子域在 rails 2.3.2 应用程序中丢失 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/663893/

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