gpt4 book ai didi

ruby-on-rails - 切换 EC2 实例时维护 Cookie Ruby on Rails

转载 作者:行者123 更新时间:2023-12-04 18:29:03 25 4
gpt4 key购买 nike

我的团队即将结束对我们系统的大规模更改,并准备进行大转换。

目前,我们使用弹性 IP 托管在 AWS 上。我们的堆栈是 Ruby on Rails,我们使用的是 capistrano。我们还有一个黑莓应用程序和一个 iPhone 应用程序,并在客户手中。应用程序和服务器之间的身份验证是通过 cookie 而不是任何类型的身份验证 key 。

我很清楚这不是进行身份验证的最佳方式,但遗留代码是遗留代码。

由于我们公司和服务的性质,当我们切换时,用户不会被注销并且 session 通过 cookie 从移动应用程序传递到服务器是必须的。

我尝试了以下方法:

将 DNS 指向不同的 IP。
将弹性 IP 指向不同的 AWS 实例。

在每种情况下,cookies 似乎都没有得到尊重。

我是一名开发人员而不是系统管理员,并且已经没有想法了。有没有办法使用 Devise on Rails 或通过 AWS 制作一个新的实例荣誉 cookie?或者我应该考虑的另一个选择?

最佳答案

HTTP Cookie 不包含任何有关服务 IP 地址的信息。它们与域名(或子域的根)和路径相关联。因此,只要域保持不变,您就可以随心所欲地更改服务 IP 地址。在您的情况下,这两种解决方案都有效 - 您可以迁移 IP 地址或仅更改 DNS 记录的 IP 值。这应该足以让用户保持登录状态。

重要的提醒问题是 - 你在哪里保存 session 数据?你在 Rails 中使用什么 session 存储?可能是您没有将 session 数据迁移到您的测试环境,因此客户端已注销。

Rails 的默认 session 存储是 cookie 存储( session 数据保存在客户端),因此只要您在应用程序中的 secret_token 保持不变,它就应该“正常工作”。也许这是在部署期间重新生成的?可能值得检查 (config/initializers/secret_token.rb) 此 token 用于对 cookie 进行签名,以确保客户端没有更改它们。

确保所有这些要点在您的情况下都是有效的,并仔细检查您的测试过程,因为它应该可以在没有任何额外操作的情况下工作。

关于ruby-on-rails - 切换 EC2 实例时维护 Cookie Ruby on Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16217171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com