【问题标题】:NameError (uninitialized constant OAuth Did you mean? OAuth2)NameError(未初始化的常量 OAuth 你的意思是?OAuth2)
【发布时间】:2019-05-26 21:02:48
【问题描述】:

我正在尝试在 RoR 5.0.7 上使用omniauth-linkedin-oauth2。

gem 'devise'
gem 'omniauth'
gem 'omniauth-oauth2'
gem 'omniauth-linkedin-oauth2'

但我在生产环境中遇到错误,我无法启动 Rails 应用程序。我的本地开发环境运行没问题。

production.log 上的错误是

NameError (uninitialized constant OAuth Did you mean?  OAuth2)

如果我换了

gem 'omniauth-linkedin-oauth2'

gem 'omniauth-linkedin'

然后包更新没有错误并且 RoR 正在运行。

我的生产环境是

Debian GNU/Linux 8.11 (jessie)
Apache/2.4.10 (Debian)
Phusion_Passenger/6.0.2
ruby 2.4.6p354

【问题讨论】:

  • 您的应用是否配置为处理 OAuth 1 和 2 样式令牌?可能是现有数据的问题。
  • 我想将 OAuth1 替换为 OAuth2。我的开发环境正在运行,没有任何错误。您的意思是生产环境中存在旧的 OAuth1 数据吗?如何查看?
  • 是的,我就是这个意思。您应该能够以某种方式在控制台中检查它,但是如何操作取决于您如何保存当前令牌
  • 非常感谢。你说的对。我清除了数据库上的所有会话,并且应用程序现在运行没有错误。我做的命令是 RAILS_ENV=production rake db:sessions:clear

标签: oauth-2.0 ruby-on-rails-5 linkedin-api


【解决方案1】:

您需要清除会话数据以删除现有的OAuth 令牌数据。您不能同时使用两种令牌类型。

根据您的评论(留下答案,以防其他人遇到同样的问题)您需要运行: RAILS_ENV=production rake db:sessions:clear

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-19
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 2015-03-01
    相关资源
    最近更新 更多