首页 > 解决方案 > 具有多个应用服务器的无效重置密码令牌

问题描述

环境

红宝石 ruby​​-2.5.3(RVM)

导轨 5.2.3

设计 4.7.0

问题

从使用两个应用服务器的重置密码说明电子邮件中获得的令牌中解密 reset_password_token 的问题。但是,当我们收到对其中一个应用服务器的请求时,它工作正常,但另一个应用服务器却不行。也许,从服务器生成的加密重置密码令牌可以正常工作。请查看以下完整详情。

电子邮件 URL -> /users/password/edit?reset_password_token=tNw1nqXqAa6c8Y9yUkGg

APP 服务器 1 -> 使用上述令牌解密的令牌 -> 6376d5b06682e8c0e627458a6a5654706c30a61ef19c1b2a985fbaa1aade1072

APP Server 2 -> 使用上述电子邮件令牌的解密令牌 -> b1040564c63d8f3336bddc050f06a6e4b04c6df06718643f7b9bea050c02631a

当请求发送到 APP 服务器 2 时,它将正常工作,因为在数据库中保存了此重置密码令牌。但是,如果请求发送到 APP 服务器 1 不起作用。我需要一个与任何 APP 服务器无缝连接的解决方案。这可能是在 APP 服务器中加密或解密令牌的问题。提前致谢!

标签: rubyencryptiondeviseruby-on-rails-5

解决方案


令牌是使用 secret_key_base 生成和解密的,因为它们在这两个服务中是不同的,所以一切都不起作用。

您需要在您的服务中注册相同的 secret_key_base。


推荐阅读