【发布时间】:2020-10-21 22:47:00
【问题描述】:
我有一个后端服务器(由 Rails 提供支持),其 API 由运行在 Node 简单开发服务器上的 HTML5 前端使用。
两者都在同一个主机上:我的机器。
当我从前端登录到后端时,rails 向我发送了会话 cookie。我可以在响应头中看到它,问题是浏览器不保存它。
策略是正确的,如果我直接从 rails 应用程序 cookie 提供相同的前端,则设置正确。
我能看到的唯一区别是,当前端在 Node 服务器上运行时,它运行在端口 8080 上,而 rails 运行在端口 3000 上。我知道 cookie 不应该是特定于端口的,所以我错过了这里发生的事情。
有什么想法吗?解决方案?
(我需要能够以这种方式保持设置,以便让前端从 Node 提供服务,后端在不同端口上的轨道上提供服务)
【问题讨论】:
-
使用基于 JWT 令牌的身份验证系统,而不是 cookie/会话。如Knock或devise_token_auth。
-
JWT 与问题完全正交。是的,可以通过
Authorization标头而不是通过 cookie 发送 JWT,但 OP 的当前身份验证令牌也可以。 Cookie 是一种便利。
标签: ruby-on-rails cookies port webpack-dev-server