Я только что заметил, что в 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: скриншот ошибки

Скриншот

Ответы на вопрос(1)

Ваш ответ на вопрос