【发布时间】:2013-12-05 21:33:07
【问题描述】:
基本上,我正在使用 RocketPants 和 Devise 在 Rails 中开发 API,并且正在使用 AngularJS 创建客户端。因为它们位于由单独的人维护的文件夹中,所以我在 localhost:3000 上运行 rails api,在 localhost:8000 上运行客户端,在实时环境中,它们将位于同一顶级域的子域中。 api.example.comapp.example.com.
我已经允许使用 Rack Cors 进行跨域请求,这似乎工作正常,我可以通过将我的凭据发送到 API 来查询并登录(我还通过返回登录用户的 id 检查这是否有效)。
但是,客户端似乎没有挂在会话上,在我登录并返回确认我已成功登录并发出另一个请求后,它说current_user 为 Nil。
我认为通过在session_store.rb 中使用以下内容,我允许在rails 中使用子域
AppName::Application.config.session_store :cookie_store, key: '_app-name_session', domain: :all
但是我无法对此进行测试。
有没有在本地端口之间共享会话的好方法?或者有没有一种好方法可以模拟子域以在 2 个项目(1 个轨道,1 个独立项目)之间进行本地测试?
【问题讨论】:
标签: ruby-on-rails session devise localhost