加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 20:59:07 所属栏目:百科 来源:网络整理
导读:我的团队即将结束对我们系统的大规模改革,并准备做大转变. 目前,我们使用弹性IP在AWS上托管.我们的堆栈是Ruby on Rails,我们正在使用capistrano.We还有一个黑莓应用程序和一个iPhone应用程序直播并在客户手中.应用程序和服务器之间的身份验证是通过cookie而
我的团队即将结束对我们系统的大规模改革,并准备做大转变.

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

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

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

我尝试了以下方法:

将DNS指向不同的IP.
将弹性IP指向其他AWS实例.

在每种情况下,cookie似乎都没有兑现.

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

解决方法

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

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

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

确保所有这些点在您的情况下都有效并仔细检查您的测试过程,因为它应该可以正常工作而无需任何其他操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读