最新的 omniauth-facebook gem 破坏设计
Latest omniauth-facebook gem breaks devise
ruby '2.6.3'
gem 'rails', '~> 6.0.2', '>= 6.0.2.1'
我正在使用最新的 omniauth-facebook 并一起设计
宝石文件:
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'
在 devise.rb 中。 )
我尝试过许多不同版本的 omniauth-facebook 和 devise 组合。要么 Facebook 身份验证停止正常工作,要么服务器出现故障(见上文)。
我很确定这个问题与这个设计 PR 有关,https://github.com/heartcombo/devise/pull/5327
Devise 当前的版本检查不包括 OmaniAuth > 1.x.x
正在使用
gem 'devise', github: 'heartcombo/devise', branch: 'ca-omniauth-2'
在 Gemfile 中将修复问题,等待合并。
根据下面 Carlos 的回答更新了我的回答,当我使用 ref 发布这个时我很着急。
谢谢 Carlos 维护 Devise。
我是 Devise 维护者 Carlos。请留意上面链接的 Pull Request,我只是 shared how you can test it in your app there:
我建议直接使用分支引用而不是 git 引用:
gem 'devise', github: 'heartcombo/devise', branch: 'ca-omniauth-2'
有了它,您应该能够 运行 bundle update devise omniauth
这应该会给您 OmniAuth 2 和这个 Devise 分支。这应该允许应用程序启动。
最后,如果您在应用程序上复制了 Devise 共享链接,或者如果您有自己的链接来启动 OmniAuth 身份验证流程,则需要确保将它们更改为使用表单。 (例如,您可以使用 link_to 和 method: :post
选项,或者使用 button_to
,如果这适用于您的应用程序。)请注意,这是对 OmniAuth 工作方式的要求更改由于安全问题,read more.
如果您 运行 遇到任何问题,请在 GitHub 中回复,我们将努力尽快解决这些问题,以便我们可以发布完全支持 OmniAuth 2 的新 Devise 版本。谢谢.
请降级 OmniAuth:
gem "omniauth", "~> 1.9.1"
这对我有用。
设计 4.8.0(昨天发布)解决了这个问题。
ruby '2.6.3' gem 'rails', '~> 6.0.2', '>= 6.0.2.1'
我正在使用最新的 omniauth-facebook 并一起设计 宝石文件: 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'
在 devise.rb 中。 )
我尝试过许多不同版本的 omniauth-facebook 和 devise 组合。要么 Facebook 身份验证停止正常工作,要么服务器出现故障(见上文)。
我很确定这个问题与这个设计 PR 有关,https://github.com/heartcombo/devise/pull/5327
Devise 当前的版本检查不包括 OmaniAuth > 1.x.x
正在使用
gem 'devise', github: 'heartcombo/devise', branch: 'ca-omniauth-2'
在 Gemfile 中将修复问题,等待合并。
根据下面 Carlos 的回答更新了我的回答,当我使用 ref 发布这个时我很着急。
谢谢 Carlos 维护 Devise。
我是 Devise 维护者 Carlos。请留意上面链接的 Pull Request,我只是 shared how you can test it in your app there:
我建议直接使用分支引用而不是 git 引用:
gem 'devise', github: 'heartcombo/devise', branch: 'ca-omniauth-2'
有了它,您应该能够 运行 bundle update devise omniauth
这应该会给您 OmniAuth 2 和这个 Devise 分支。这应该允许应用程序启动。
最后,如果您在应用程序上复制了 Devise 共享链接,或者如果您有自己的链接来启动 OmniAuth 身份验证流程,则需要确保将它们更改为使用表单。 (例如,您可以使用 link_to 和 method: :post
选项,或者使用 button_to
,如果这适用于您的应用程序。)请注意,这是对 OmniAuth 工作方式的要求更改由于安全问题,read more.
如果您 运行 遇到任何问题,请在 GitHub 中回复,我们将努力尽快解决这些问题,以便我们可以发布完全支持 OmniAuth 2 的新 Devise 版本。谢谢.
请降级 OmniAuth:
gem "omniauth", "~> 1.9.1"
这对我有用。
设计 4.8.0(昨天发布)解决了这个问题。