gpt4 book ai didi

ruby-on-rails - Rails 3 session_store 域 :all really do? 是什么意思

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

更新了问题以使其更加清晰

我知道您可以设置 session_store 的域以在子域之间共享 session ,如下所示: Rails.application.config.session_store :cookie_store, :key => '_my_key', :domain => "mydomain.示例”

在 Rails 3 中,设置 :domain => :all 的作用是什么?它不能让您跨顶级域共享 session ,cookie 不能做到这一点。该文档称它假定一个顶级域。那么如果多个域访问您的应用程序会发生什么情况?

在我的应用中,我的用户可以创建一个主域的个人子域,但随后也可以通过自己的自定义域访问该子域。

正确的 session_store 域设置是什么,以便我可以:a) 在我的主域的所有域之间共享 session ,例如 mydomain.exampleb) 通过 CNAME 自定义 URL(如 some.otherdomain.example)访问其个人子域(例如“user1.mydomain.example”)的用户仍然可以创建单独的 session 。

最佳答案

好的,实现此目的的方法是动态设置 session cookie 上的域。为了尽早做到这一点,应该将其作为机架中间件来完成:

# Custom Domain Cookie
#
# Set the cookie domain to the custom domain if it's present
class CustomDomainCookie
def initialize(app, default_domain)
@app = app
@default_domain = default_domain
end

def call(env)
host = env["HTTP_HOST"].split(':').first
env["rack.session.options"][:domain] = custom_domain?(host) ? ".#{host}" : "#{@default_domain}"
@app.call(env)
end

def custom_domain?(host)
host !~ /#{@default_domain.sub(/^\./, '')}/i
end
end

关于ruby-on-rails - Rails 3 session_store 域 :all really do? 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4060333/

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