尝试在不同的域上使用CORS和XSRF

时间:2014-09-02 11:12:20

标签: javascript ruby-on-rails cors csrf

我有一个前端和后端应用程序。它们位于不同的域(子域)中。 前端应用程序执行第一个请求(GET)以获取一些服务器端信息,基本上是session_idXSRF-TOKEN cookie。

情况是:

myapp.com cookies: _session_id api.myapp.com cookies: XSRF-TOKEN

因此,我的前端应用获取了_session_id Cookie,但它没有获得XSRF-TOKEN。当我尝试让XSRF-TOKEN将其放在标题X-XSRF-TOKEN上时,这是不可能的,因为它们是不同的域。

有什么好心的帮我?提前谢谢。

2 个答案:

答案 0 :(得分:1)

您需要考虑以下事项:Share session (cookies) between subdomains in Rails?

#config/initializers/session_store.rb
YourApp::Application.config.session_store :cookie_store, key: '_yourapp_session', domain: :all, tld_length: 2

答案 1 :(得分:0)

进一步了解rails我只需要在子域之间共享cookie,如下所示:

cookies['XSRF-TOKEN'] = { value: form_authenticity_token, domain: '.myapp.com'}