Oauth 谷歌登录JavaScript客户端无法在PWA应用程序上运行

Oauth 谷歌登录JavaScript客户端无法在PWA应用程序上运行,oauth,google-api,progressive-web-apps,Oauth,Google Api,Progressive Web Apps,从昨天开始,当我使用gapi.auth2在安卓系统上安装的PWA应用程序上进行谷歌登录时,该应用程序打开浏览器窗口选择用户,但仍然为空。 Android上Chrome浏览器上的同一页面会像往常一样打开用户选择。代码相同,来自同一台服务器。代码在15天内未被修改。我认为问题在于谷歌服务器上的gapi JS客户端代码发生了一些变化。 检查chrome上的PWA Google登录选项卡会显示以下错误: 未捕获无法从URL哈希获取父源 谷歌开发者控制台上的源代码还可以 有人知道怎么解决这个问题吗 Edi

从昨天开始,当我使用gapi.auth2在安卓系统上安装的PWA应用程序上进行谷歌登录时,该应用程序打开浏览器窗口选择用户,但仍然为空。 Android上Chrome浏览器上的同一页面会像往常一样打开用户选择。代码相同,来自同一台服务器。代码在15天内未被修改。我认为问题在于谷歌服务器上的gapi JS客户端代码发生了一些变化。 检查chrome上的PWA Google登录选项卡会显示以下错误:

未捕获无法从URL哈希获取父源

谷歌开发者控制台上的源代码还可以

有人知道怎么解决这个问题吗

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;
    }
}
initGoogle(){
this.ngRedux.dispatch({type:SN_INIT_GOOGLE});

创造((observer:observer

我也有类似的问题。我没有在Credential->my OAuth Client ID->Authorized JavaScript Originates下注册我的域。通过添加,它开始工作。检查你的应用程序的类似情况。这可能会有所帮助。

这个错误应该被修复。无法再复制它。

你能提供代码的密码吗我们知道你做了什么(也许做错了)?此外,错误日志的SCENSHOT有时可能有用?相关代码块和错误屏幕截图added@MarcosB找到解决方案了吗?@Ahmad工作正常。它已经被添加。如果没有添加,我会被拒绝权限,不会出现空白屏幕。@MarcosB你找到解决方案了吗?对我来说,它仍然在发生。我只是注意到n chrome我也遇到了同样的问题,但在Safari和Firefox上它对我来说效果很好。更糟糕的是,当我切换到chrome隐姓埋名模式时,它工作了!是吗?