Выключение Google plus API сегодня, какую альтернативу можно использовать для аутентификации? - PullRequest
0 голосов
/ 07 марта 2019

Я использую rails-4 и использую OAuth-2 для аутентификации с Google+ API, для которой в моем приложении используются следующие гемы:

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

Я получил следующее предварительное уведомление по электронной почте:

7 марта 2019 г. все Google+ API и вход в Google+ будут закрыты полностью. Это будет постепенное завершение работы с вызовами API прерывистый сбой уже 28 января 2019 г., и запросы OAuth> для областей Google+ начинают периодически прерываться еще в феврале> 15 2019 г.

Сегодня я не могу аутентифицироваться, поскольку я получаю nil для request.env["omniauth.auth"] после того, как API получил следующий фрагмент кода:

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

Пожалуйста, предложите, как я могу решить эту проблему, или предоставьте альтернативу этому.

1 Ответ

3 голосов
/ 07 марта 2019

Наконец, мне как-то удалось решить проблему, предоставив альтернативную конечную точку OpenIdConnect для информации о пользователях.Используя источник , я заменил:

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

И теперь он отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...