2017-10-18 63 views
0

我們正在用Ruby on Rails構建一個新的應用程序。我們的前端是在一個單獨的項目中,我們沒有使用Rails的觀點。我們的後端位於api.app.example.com,而前端部分位於app.example.com。他們在不同的基礎架構上(一個在AWS ECS中,另一個在S3中)。我們無法獲得會話cookie以保存在瀏覽器中。子域上的Rails 5後端不保存cookies

我已經做了一些研究,發現了domain: :alltld_length: 4參數,但是這些參數大多都是大致相同長度的子域名,只是名稱不同而已。我一直在嘗試一些不同的組合,但至今沒有人幫助:

domain: :all, tld_length: 3 domain: :all, tld_length: 4 domain: '.app.example.com', tld_length: 4 domain: '.example.com' domain: :all

使用Set-Cookie頭是由瀏覽器成功接收,但它不會被保存,爲此渲染任何請求登錄後未經授權。

有什麼我忘記了嗎?這可以解決,或者我應該把整個東西移動到單個IP並使用/api而不是api.

回答

0

通常,如果您使用Rails作爲API項目,默認情況下會禁用會話存儲。你應該做這樣的事情在你的初始化之一:

Rails.application.config.session_store :cookie_store, :key => '_namespace' 

我不認爲應該子域在這種情況下無所謂,但我可能是錯的。

+0

我已經設置好了。 Set-Cookie頭與此一起發送,但不保存,我假定由於域配置。 – jj9987