Я экспериментировал с процессом входа в Google. у меня это почти правильно, но застрял на одном вопросе.
Когда я вхожу в систему - кнопка Google немедленно изменяется, чтобы указать, что я вошел в систему. В этот момент она устанавливает cookie с моим адресом электронной почты. Однако файл cookie не доступен сразу. если я меняю страницы - ТОГДА я вижу печенье.
моя функция выхода из системы - отлично работает, так как я могу обновить экран и сразу же увидеть, как печенье исчезает.
код теста здесь: - http://tv.kwister.com/google2.php
Я пробовал разные коды - и удалил мои бесконечные обновления (что хорошо ..).
Может кто-нибудь посоветовать, как я «слушаю» процесс входа в систему.
1) я вышел
2) Я нажимаю кнопку, и появляется всплывающее окно с моим идентификатором Google.
3) Я выбираю один из моих идентификаторов, и кнопка меняется, показывая, что я вошел в систему.
есть ли тест, который я могу выполнить на # 3, чтобы обновить экран до определенного URL-адреса после того, как я войду в систему.
код слишком велик, чтобы цитировать здесь (легко).
Спасибо
КОД:
<script src="https://apis.google.com/js/platform.js?onload=onLoadCallback" async defer></script>
<script>
window.onLoadCallback = function(){
gapi.auth2.init({
client_id: '289042886294-mjrqers2627egmbd00mglccmme48k1hv.apps.googleusercontent.com'
});
}
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*250));
var expires = "expires="+ d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=\/";
}
</script>
<meta name="google-signin-client_id" content="289042886294-mjrqers2627egmbd00mglccmme48k1hv.apps.googleusercontent.com">
<script>
function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
console.log('ID: ' + profile.getId()); // Do not send to your backend! Use an ID token instead.
console.log('Name: ' + profile.getName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail()); // This is null if the 'email' scope is not present.
setCookie("Kwisterloggedin", profile.getEmail(), 1);
}
// NEW TEXT SINCE LAST FIXED
// Listen for sign-in state changes.
auth2.isSignedIn.listen(signinChanged);
var signinChanged = function (val) {
console.log('Signin state changed to ', val);
window.location.replace("http://tv.kwister.com/google2.php?switch=1");
}
// END NEW TEXT
gapi.load('auth2', function() {
auth2 = gapi.auth2.init({
client_id: '289042886294-mjrqers2627egmbd00mglccmme48k1hv.apps.googleusercontent.com',
fetch_basic_profile: false,
scope: 'profile'
});
// Sign the user in, and then retrieve their ID.
auth2.signIn().then(function() {
console.log(auth2.currentUser.get().getId());
window.location.replace("http://tv.kwister.com/google2.php?switch=1");
});
});
</script>