我有一个前端和一个后端应用程序。它们位于不同的域(子域)中。前端应用程序执行第一个请求(GET)以获取一些服务器端信息,基本上是session_id
和XSRF-TOKEN
cookie。
情况是:
myapp.com cookies: _session_id
api.myapp.com cookies: XSRF-TOKEN
所以,我的前端应用程序得到了_session_id
cookie,但没有得到XSRF-TOKEN
。当我试图让XSRF-TOKEN
像X-XSRF-TOKEN
一样把它放在头上时,这是不可能的,因为它们是不同的域。
有好心人帮我吗?提前谢谢。
您需要考虑以下问题:在Rails中的子域之间共享会话(cookie)?
#config/initializers/session_store.rb
YourApp::Application.config.session_store :cookie_store, key: '_yourapp_session', domain: :all, tld_length: 2
进一步了解rails,我只需要在子域之间共享cookie,如下所示:
cookies['XSRF-TOKEN'] = { value: form_authenticity_token, domain: '.myapp.com'}