Когда пользователь попадает на страницу, авторизация 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?