Пользователь входа в Google изменил прослушиватель - PullRequest
0 голосов
/ 03 октября 2018

Когда пользователь попадает на страницу, авторизация Google загружается и инициируется.Google Sign-in API предоставляет функцию прослушивания, которая срабатывает при изменении пользователя (GoogleAuth.currentUser.listen ()).Ожидаемое поведение для функции, которую я хочу реализовать, включает в себя наблюдение за пользователями, входящими в gmail на других вкладках браузера.

const userChanged = user => {
  if (user) {
    console.log('CHANGED TO USER: ', user);
  }
};

const loadGoogleAuth = () => {
  window.gapi.load('auth2', () => {
    const gapiAuth = window.gapi.auth2;
    gapiAuth.init({
      client_id: '<YOUR-CLIENT-ID>.apps.googleusercontent.com',
      cookie_policy: 'none', //my hunch is this could be affecting listener capabilities?
      scope: 'profile email openid',
    });
    const authInstance = gapiAuth.getAuthInstance();
    const element = document.getElementById('googleSignIn');
    authInstance.attachClickHandler(
      element,
      {},
      googleUser => {
        console.log(`Signed in: ${googleUser.getBasicProfile().getName()}`);
      },
      error => {
        console.log('Sign-in error', error);
      }
    );
    authInstance.currentUser.listen(userChanged);
  });
};

const withLifeCycles = lifecycle({
  componentDidMount() {
    if (window.gapi) {
      loadGoogleAuth();
    }
  },
});

Это работает, но только для первого gmail, с которым пользователь выполняет вход, или gmail, который уже вошел в систему до того, как пользователь попадет на страницу.Другими словами, если я войду в Gmail A, он обнаружит изменение пользователя, но не обнаружит Gmail B, если я выйду из Gmail A и войду в Gmail B впоследствии.Однако впоследствии он обнаружит повторные регистрации для Gmail A, а не для любых других адресов Gmail.Может ли функция прослушивателя обнаруживать входы на любом адресе Gmail или только для первого обнаруженного Gmail?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...