代码之家  ›  专栏  ›  技术社区  ›  ray

Google plus API今天关闭,可以使用哪种方法进行身份验证?

  •  -1
  • ray  · 技术社区  · 7 年前

    我在用 rails-4 ,并已使用 OAuth-2 用于身份验证 Google+ API ,在我的应用程序中使用了以下宝石:

    1. omniauth-oauth2
    2. omniauth-google-oauth2

    我已收到以下事先电子邮件通知:

    2019年3月7日,所有Google+API和Google+登录将被关闭 彻底地这将是一个渐进式关闭,API调用开始 最早在2019年1月28日间歇性失败,OAuth请求>对于最早在2月份开始间歇性失败的Google+Scope>15, 2019.

    今天,我无法进行身份验证,因为 nil 对于 request.env["omniauth.auth"] API收到以下代码后:

    @user = User.find_for_google_oauth2(request.env["omniauth.auth"], current_user)
    

    请建议我如何解决这个问题,或者提供一个替代方案。

    1 回复  |  直到 7 年前
        1
  •  3
  •   sawa    7 年前

    最后,我设法解决了这个问题,为用户信息提供了另一个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_补丁。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
    

    现在效果很好。