首页 > 解决方案 > 在 Heroku 升级到 heroku-20 堆栈后,Rails 设计登录不起作用

问题描述

我刚刚将我的 Heroku 堆栈从 heroku-16 升级到 heroku-20。现在,我的用户无法登录。这是日志中的错误消息: Completed 401 Unauthorized in 83ms (ActiveRecord: 2.1ms)

我回滚到 heroku-16 堆栈并确认问题不存在(用户可以成功登录)。

如果有帮助,在我的 Gemfile 中我使用:

宝石'设计','4.6.1'

宝石'导轨','5.2.2'

红宝石'2.6.6'

我不知道如何调试,因为登录/注销在我的开发区域中工作正常。任何想法可能是什么问题?

标签: ruby-on-railsrubyherokudevise

解决方案


解决了。

错误出现在我的 Gemfile 中,我同时拥有一个 devise gem 和一个 bcrypt-ruby gem。注释掉 bcrypt-ruby gem 解决了这个问题(这个设计是 bcrypt 自带的,所以大概有某种冲突)。我不知道为什么使用 heroku-20 和 heroku-16 堆栈的操作方式不同,但这是一个红鲱鱼。

仅供参考,当我尝试通过登录以外的其他方式进行调试时,我发现了线索:创建一个新的用户帐户。此操作失败,但错误日志引用了 bcrypt-ruby,这使我走上了解决问题的道路。


推荐阅读