ruby-on-rails – 在切换EC2实例Ruby on Rails时维护Cookie
我的团队即将结束对我们系统的大规模改革,并准备做大转变.
目前,我们使用弹性IP在AWS上托管.我们的堆栈是Ruby on Rails,我们正在使用capistrano.We还有一个黑莓应用程序和一个iPhone应用程序直播并在客户手中.应用程序和服务器之间的身份验证是通过cookie而不是任何类型的身份验证密钥. 我很清楚这不是进行身份验证的最佳方式,但遗留代码是遗留的. 由于我们公司和服务的性质,重要的是当我们切换时,用户不会被注销,并且通过cookie从移动应用程序传递到服务器的会话被尊重. 我尝试了以下方法: 将DNS指向不同的IP. 在每种情况下,cookie似乎都没有兑现. 我是开发人员,而不是系统管理员,并且已经没有想法了.无论如何使用Devise on Rails或通过AWS制作新的实例荣誉cookie?或者我应该考虑另一种选择? 解决方法
HTTP Cookie不包含有关服务IP地址的任何信息.它们与域名(或子域的根)和路径相关联.因此,只要域保持不变,您就可以更改所需的服务IP地址.在您的情况下,两个解决方案都是有效的 – 您可以迁移IP地址或只更改DNS记录的IP值.这应该足以让用户登录.
重要的是,提醒问题是 – 您在哪里保存会话数据?你在Rails中使用什么会话存储?您可能没有将会话数据迁移到测试环境,因此客户端已注销. Rails的默认会话存储是cookie存储(会话数据保留在客户端),因此只要您的应用程序中的secret_token保持不变,它就应该“正常工作”.也许这是在部署期间重新生成的?可能值得一试(config / initializers / secret_token.rb)此令牌用于对cookie进行签名,以确保客户端未对其进行更改. 确保所有这些点在您的情况下都有效并仔细检查您的测试过程,因为它应该可以正常工作而无需任何其他操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |