Проблема при аутентификации пользователя с действительной учетной записью Google Analytics

Я использую omniauth-google-oauth2 для аутентификации в аккаунтах google и google. В моем приложении пользователи регистрируются со своими учетными записями google для просмотра своих данных аналитики Google. Аутентификация выполняется правильно, когда пользователь правильно вводит логин в действительную учетную запись GA, но дает мне ошибку, когда учетная запись не зарегистрирована в Google Analytics, поскольку

{
 "errors" = > [{
 "domain" = > "global", "reason" = > "insufficientPermissions", "message" = > "User does not have any Google Analytics account."
 }], "code" = > 403, "message" = > "User does not have any Google Analytics account."
}:

Не знаете, как справиться с этим и перенаправить пользователей на страницу входа, указав сообщение об ошибке "Учетная запись не зарегистрирована в GA",

1 ответ

Какая у вас разума? Я предполагаю, что у вас есть что-то в своем объеме.

Если вы измените настройку на следующее значение по умолчанию в своем omniauth.rb (или любом другом файле инициализации, который вы используете):

provider :google_oauth2, "yourappid", "yourkey"

Тогда проблема, скорее всего, исчезнет. Если да, то что здесь происходит, так это то, что вы не просили разрешения. По умолчанию scope = "userinfo.email, userinfo.profile". Если вы хотите получить дополнительное разрешение, например, "somepermission". Затем вместо использования следующих

provider :google_oauth2, "yourappid", "yourkey", :scope => "somepermission"

Вы должны использовать

provider :google_oauth2, "yourappid", "yourkey", :scope => "userinfo.email,userinfo.profile,somepermission"

В противном случае он не даст вам адрес электронной почты/профиля, необходимый для работы omniauth.

licensed under cc by-sa 3.0 with attribution.