基本上,我使用RocketPants和Devise在rails中开发一个API,并使用AngularJS创建一个客户端。由于它们位于由独立人员维护的文件夹中,所以我在localhost:3000上运行rails api,在localhost:8000上运行客户端,而在活动环境中,它们将位于同一顶级域的子域上。api.example.com app.example.com.
我允许使用Rack Cors进行跨域请求,这似乎很好,我可以通过向API发送我的凭据来查询事物和登录(我还通过返回登录用户的id来检查这是否有效)。
但是,在我登录并返回确认我成功登录并提出另一个请求之后,客户端似乎没有保留会话,它说current_user是Nil。
我已经允许在rails中使用子域,我认为通过在session_store.rb中使用以下内容
AppName::Application.config.session_store :cookie_store, key: '_app-name_session', domain: :all不过,我不能测试这一点。
是否有一种在本地端口之间共享会话的好方法?或者有一个很好的方法来模拟两个项目(一个rails,一个独立的)之间的本地测试的子域?
发布于 2013-11-21 12:53:30
您是否考虑过使用Pow为开发中的应用程序提供服务?
然后,您可以在子域上运行它们,就像在生产中一样。
https://stackoverflow.com/questions/20120545
复制相似问题