ruby-on-rails - 在 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'
我不知道如何调试,因为登录/注销在我的开发区域中工作正常。任何想法可能是什么问题?
解决方案
解决了。
错误出现在我的 Gemfile 中,我同时拥有一个 devise gem 和一个 bcrypt-ruby gem。注释掉 bcrypt-ruby gem 解决了这个问题(这个设计是 bcrypt 自带的,所以大概有某种冲突)。我不知道为什么使用 heroku-20 和 heroku-16 堆栈的操作方式不同,但这是一个红鲱鱼。
仅供参考,当我尝试通过登录以外的其他方式进行调试时,我发现了线索:创建一个新的用户帐户。此操作失败,但错误日志引用了 bcrypt-ruby,这使我走上了解决问题的道路。
推荐阅读
- python - 在一个轴上绘制多组值时,如何减少 Python 中 x 轴刻度的频率?
- javascript - Aframe 相机开关仅适用于非 VR 模式
- cocoa - Cocoa osx:无法解决 crashlytic 报告的崩溃问题
- python - 从 shell 控制台手动运行 python3 脚本和命令
- powershell - 使用 powershell 编辑文件的 VersionInfo
- swift - 是否有标准的赋值运算符语法仅在值不同时才分配值?
- kentico - Kentico - 组合搜索索引
- angular - 仅在使用 Angular 6 完成另一个方法时调用一个方法
- hibernate - JOINED 继承策略中没有鉴别器列
- amazon-cloudformation - 使用 cloudformation 创建 ssm 安全字符串