在Rails 4和Ember中的所有子域上设置Cookie

菲耶夫

我们有一个正在运行的API组件的Rails应用程序,api.domain.com一个在上运行的Ember.js的前端应用程序www.domain.com

当Ember.js将POST请求发送到API中的路由时/events,我们希望API设置cookie来记住唯一的用户标识符。

因此,该方法在事件控制器中:

def set_tracking_cookie
  cookies[:our_company_distinct] = {
    value: create_identifier,
    expires: 1.year.from_now,
    domain: :all
  }
end

如您所见,cookie设置在整个域上,并设置为在一年后过期。

关键是,下次Ember查询API时,它将能够读取此cookie。然而,这种情况并非如此。

每次前端查询API时,API都找不到cookie,也不会在我的开发人员工具的cookie中显示它。

Ember请求将Access-Control-Allow-Credentials标头设置true,然后我可以确认Cookie确实是在API响应中发送的,其中包含域,名称,路径,有效期等的正确值。

我想念什么吗?

谢谢!

菲耶夫

对于以这种方式发送/接收Cookie遇到问题的其他任何人,在调试并最终解决该问题时,我发现有一些有用的东西:

  • 当您使用Chrome浏览器(或其他任何浏览器)的devtools时,请检查每个请求并进行检查,以查看是否正在将API发送到您希望发送该请求的请求上的cookie,以及是否来自Ember的所有后续请求(或不论其他哪种JS框架都可以发送此请求。在Chrome中,转到“网络> [请求]> Cookies”。确保前端正确发送了cookie,并且确实确实正确接收了cookie。
  • 我们发现这是向Ember添加对CORS cookie的支持的最好方法,方法是:http : //discuss.emberjs.com/t/ember-data-and-cors/3690

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Rails 4中设置/获取cookie有问题吗?

来自分类Dev

在Rails 4中查看子域链接

来自分类Dev

子域上的Rails,Devise和Dynamic子域(例如user.beta.example.com)如何设置?

来自分类Dev

Rails 4动态子域

来自分类Dev

Rails 4.1中的子域

来自分类Dev

Rails 4.1中的子域

来自分类Dev

如何使用RSpec和Rails 4测试子域约束

来自分类Dev

带有CloudFlare和子域的Rails租户应用

来自分类Dev

Rails 4应用程序中的子域

来自分类Dev

是否可以将 php 中的 cookie 从 2lvl 域设置为所有 3 和 4lvl 子域?

来自分类Dev

Rails伪子域

来自分类Dev

Rails伪子域

来自分类Dev

Rails 4:如何在重定向中设置Cookie?

来自分类Dev

Rails路由,URL和子域

来自分类Dev

rails:rails的条件4

来自分类Dev

rails:rails的条件4

来自分类Dev

未设置Rails 4会话cookie

来自分类Dev

Rails 4-在服务器上,如何列出客户端发送的所有cookie及其值?

来自分类Dev

在Rails 4中找到一组深层嵌套的子对象的所有父母的父母

来自分类Dev

主机中的Rails子域被替换

来自分类Dev

Ember js和Rails 4 CSRF

来自分类Dev

Ember js和Rails 4 CSRF

来自分类Dev

Rails:带有Rails的会话跨域

来自分类Dev

使用rails 4从mutilselect获取和保存所有项目

来自分类Dev

Ember JS中的Rails STI和多态

来自分类Dev

Ember JS中的Rails STI和多态

来自分类Dev

将所有子域路由到我的Heroku Rails应用程序

来自分类Dev

Rails 4:仪表板/分析和查询数据库中的所有记录

来自分类Dev

在Rails 4中的编辑方法上设置复选框