我正在使用rails-4
,并且已经在我的应用中使用OAuth-2
与Google+ API
进行身份验证,为此使用了以下宝石:
我已经收到以下以下电子邮件通知:
2019年3月7日,所有Google+ API和Google+登录将关闭 完全。这将是逐步关闭,并开始API调用 最早在2019年1月28日间歇性地失败,并且Google+范围的OAuth请求>最早在2019年2月15日开始间歇性地失败。
今天,我无法进行身份验证,因为在API收到以下代码后,我得到了nil
的{{1}}:
request.env["omniauth.auth"]
请提出如何解决此问题的建议,或提供替代方法。
答案 0 :(得分:3)
最后,我以某种方式设法通过为用户信息提供备用OpenIdConnect端点来解决了该问题。我使用source替换了:
https://www.googleapis.com/plus/v1/people/me/openIdConnect
具有:
https://www.googleapis.com/oauth2/v3/userinfo
我用以下方法修补了omniauth-google-oauth2
:
config / initializers / omniauth_google_oauth2_patch.rb
class OmniAuth::Strategies::GoogleOauth2 < OmniAuth::Strategies::OAuth2
def raw_info
@raw_info ||= access_token.get('https://www.googleapis.com/oauth2/v3/userinfo').parsed
end
end
现在运行良好。