Я использую G + для входа на свой сайт, и я нашел эту проблему.Повторная пересылка вызова G + дважды
Мой сайт имеет панель инструментов (ее визуализации с Javascript) и G + кнопка Войти на это так, я придаю G + JavaScript API в файле панели инструментов
[панель-notlogin.php]
<script>
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js?onload=render';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
function render()
{
var config = {
"callback": "loginCallback",
"clientid": "xxxxxxxxx.apps.googleusercontent.com",
"cookiepolicy": "single_host_origin",
"requestvisibleactions": "http://schemas.google.com/AddActivity",
"scope": "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.email"
};
$('#googleCustomLoginBtn .buttonText').text('Login with Google');
gapi.signin.render ("gplusLoginBtn", config);
}
</script>
Когда панель инструментов (с G + JS API) загружена, она вызывает функцию обратного вызова render() для визуализации кнопки входа G +. Он работает очень хорошо, поэтому моя панель инструментов переходит в состояние входа в систему (показать профиль пользователя) и кнопку входа G + (HTML заменен).
Когда пользователь вышел из системы, измените состояние панели инструментов, чтобы не входить в систему (HTML заменен снова), он снова вызывает render(), и кнопка входа в систему работает.
Но проблема в том, что я вхожу на этот раз функцию обратного вызова (loginCallback()) , вызываемый дважды. Кажется, что функция обратного вызова снова связывается. (Я пытаюсь не вызывать render() во второй раз, но кнопка входа не работает.)
Есть ли способ исправить это? Спасибо.
Вы пробовали проверить порядок, в котором выполняются все функции? Это довольно просто сделать, просто выведя имя функции в консоль в начале каждой функции. Это даст вам (и мне) некоторое представление о том, что именно происходит. Также: можете ли вы создать демонстрацию jsfiddle.net? Таким образом, мы можем попытаться найти код, который поможет вам. – Korijn
Вы решили это? Если да, не могли бы вы поделиться решением? –
Возможно, это связано с тем, что Google пытается включить автоматический вход в систему, когда вы подключены к вашему Google+ и ранее разрешили приложение. попробуйте протестировать его в инкогнито с отключенной учетной записью. –