Можно ли обновить страницу при входе в Google - при входе в систему? - PullRequest
0 голосов
/ 06 июля 2018

Я экспериментировал с процессом входа в 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>
...