我正在尝试将子域a.example.org
与example.org
和b.example.org
隔离
我需要让Cookie会话存储区仅在example.org
和b.example.org
之间共享,并且我希望a.example.org
拥有自己的Cookie会话。
我尝试编写一个Rack中间件,该中间件会将example.org
和b.example.org
的域设置为等于.example.org
并将a.example.org
-.a.example.org
的域设置为项目-.example.org
的范围似乎仍然有.a.example.org
。
我正在寻找类似的东西
a.example.org
----域:a.example.org
名称:_session_a
example.org
,b.example.org
----域:example.org
名称_session_root_b
这是我不希望这两个分离对彼此的会话存在有单一的想法。
我的中间件看起来像这样,但是似乎没用:
class DomainSession
def initialize(app)
@app = app
end
def call(env)
if env["SERVER_NAME"].start_with?("system.")
env["rack.session.options"][:domain] = ".#{env["SERVER_NAME"]}"
else
env["rack.session.options"][:domain] = env["SERVER_NAME"].split(".").size < 3 ?
".#{env["SERVER_NAME"]}" :
".#{env["SERVER_NAME"].split(".")[1..-1].join(".")}"
end
@app.call(env)
end
end