Я использую Google Login через JS, и, похоже, мой код дважды получает данные. Я не уверен, почему это происходит.
Когда я нажимаю кнопку «Войти через Google», он выводит (console.log (результат)) данные для пользователя. ТОГДА появляется запрос с просьбой выбрать мою учетную запись (я вошел в несколько учетных записей 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 (соответственно) выводится дважды
Обновление 3: дополнительные пояснения: