Я использую Google Login через JS, и, похоже, мой код получает данные дважды. Я не уверен, почему это происходит.
Когда я нажимаю кнопку "Вход в систему с Google", она выплевывает (данные console.log(result)) для пользователя. THEN появляется запрос с просьбой выбрать мою учетную запись (я зарегистрирован в нескольких учетных записях Google). Когда я нажимаю на учетную запись, которую хотел бы, код снова выплевывает данные пользователя.
Почему это происходит? Это проблема, потому что, когда я выплевываю данные, я бы хотел сделать ajax-вызов, чтобы проверить пользователя, а затем перенаправить его. Таким образом, по сути, он пытается сделать это дважды - что не круто, что, если я не хочу входить в систему с использованием учетных данных, google переходит к первому обойти?
(function() {
var po = document.createElement('script');
po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/client:plusone.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(po, s);
})();
function googleLogin() {
var additionalParams = {
'callback': googleCallback
};
gapi.auth.signIn(additionalParams);
}
function googleCallback(authResult) {
if (authResult['status']['signed_in']) {
gapi.client.load('oauth2', 'v2', function() {
gapi.client.oauth2.userinfo.get().execute(function(resp) {
console.log(resp);
})
});
} else {
console.log('Sign-in state: ' + authResult['error']);
}
}
Обновление:. Если я выхожу из всех моих учетных записей Google (за исключением одного и только одного), вызов google все еще дублируется. На этот раз он входит в систему, и я вижу, что console.log() выводит данные дважды. Тонеры доступа идентичны.
Обновление 2: console.log(resp) выводит дважды
Обновление 3: Просто уточнение: