Я только что заметил, что в Chrome у меня возникает та же проблема, но в Safari и Firefox это хорошо работает для меня. еще хуже, когда я переключаюсь в режим инкогнито chrome, он работает! WTH?
ерашнего дня, когда я использую gapi.auth2 для входа в Google в установленном приложении PWA на Android, приложение открывает окно браузера, чтобы выбрать пользователя, но оно остается пустым. На этой же странице в браузере Chrome на Android выбор пользователя, как обычно, открывается. Код тот же, с того же сервера. Код не был изменен более чем за 15 дней. Полагаю, проблема в том, что в клиентском коде gapi JS на серверах Google произошли некоторые изменения. Проверка вкладки «Вход в Google PWA» в Chrome показывает следующую ошибку:
Uncaught Не удалось получить родительское происхождение из URL-хэша!
Происхождение на консоли разработчика Google в порядке.
Кто-нибудь знает, как решить эту проблему?
Edit1: кусок кода
initGoogle() {
this.ngRedux.dispatch({ type: SN_INIT_GOOGLE });
Observable.create((observer: Observer<any>) => {
let head = document.getElementsByTagName('head');
(<any>window).__ongload = () => {
gapi.load('auth2', () => {
gapi.auth2.init({
client_id: `${AppConfig.google.clientID}`
}).then(() => {
this.auth2 = gapi.auth2.getAuthInstance();
this.googleInitiated();
observer.complete();
}, (err) => {
this.log.error(err);
observer.error(err);
});
});
};
let script: HTMLScriptElement = document.createElement('script');
script.src = 'https://apis.google.com/js/platform.js?onload=__ongload';
script.type = 'text/javascript';
head[ 0 ].appendChild(script);
}).pipe(
timeout(AppConfig.google.timeout),
retry(AppConfig.google.retries),
catchError(error => {
this.googleInitError();
return observableEmpty();
}),
take(1)
).subscribe();
}
async googleLogin(scope: string = 'profile email', rerequest: boolean = false, type: string = SN_GOOGLE_LOGIN): Promise<GoogleUser> {
let goopts = {
scope: this.ngRedux.getState().socialNetworks.getIn([ 'google', 'grantedScopes' ]),
prompt: rerequest ? 'consent' : undefined
};
try {
const user: GoogleUser = await this.auth2.signIn(<any>goopts);
...
return user;
} catch (error) {
...
return error;
}
}
Редактировать 2: скриншот ошибки