最新的omniauth-facebookgem破坏设计

红宝石 '2.6.3' 宝石 'rails', '~> 6.0.2', '>= 6.0.2.1'

我正在使用最新的 omniauth-facebook 并一起设计 Gemfile: gem 'devise' gem 'omniauth-facebook'

启动服务器时出现此错误:

/versions/2.6.3/lib/ruby/gems/2.6.0/gems/devise-4.7.3/lib/devise/omniauth.rb:12:in `': 您使用的是旧版 OmniAuth,请确保您已安装 1.0.0.pr2 版本或更高版本。(运行时错误)

问题是,如果我尝试使用较旧的 omniauth-facebook 版本,服务器可以正常工作,但 Facebook 身份验证将停止正常工作(例如,尽管包括电子邮件,但仍失败)

范围:'email',info_fields:'email,name'

在设计.rb。)

我尝试了 omniauth-facebook 和 devise 的许多不同版本组合。Facebook 身份验证停止正常工作或服务器出现故障(见上文)。

回答

使用

gem 'devise', github: 'heartcombo/devise', branch: 'ca-omniauth-2'
gem 'devise', github: 'heartcombo/devise', branch: 'ca-omniauth-2'

在 Gemfile 中将修复该问题,等待合并。

根据下面的 Carlos 答案更新了我的答案,当我使用 ref 发布此内容时,我很着急。

谢谢你,卡洛斯维护设计。


回答

这是卡洛斯,设计维护者。请留意上面链接的拉取请求,我刚刚分享了如何在您的应用程序中测试它:

我建议直接使用分支引用而不是 git 引用:

有了它,您应该能够运行bundle update devise omniauth,它有望为您提供 OmniAuth 2 和这个设计分支。这应该允许应用程序启动。

最后,如果您复制了应用程序上的设计共享链接,或者如果您有自己的链接来启动 OmniAuth 身份验证流程,您需要确保将它们更改为使用表单。(method: :post例如,您可以使用带有选项的link_to或使用button_to,如果这适用于您的应用程序。)请注意,由于安全问题,这是对 OmniAuth 工作方式的要求更改,请阅读更多内容。

如果您遇到任何问题,请在 GitHub 中进行评论,我们将尽快解决这些问题,以便我们可以发布完全支持 OmniAuth 2 的新 Devise 版本。谢谢。

  • Update as on Apr 17, 2021: It seems the above branch is now merged to master. So just `gem 'devise', github: 'heartcombo/devise'` works (get the gem from master).

回答

设计 4.8.0(昨天发货)解决了这个问题。


以上是最新的omniauth-facebookgem破坏设计的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>