Oauth 谷歌登录JavaScript客户端无法在PWA应用程序上运行
从昨天开始,当我使用gapi.auth2在安卓系统上安装的PWA应用程序上进行谷歌登录时,该应用程序打开浏览器窗口选择用户,但仍然为空。 Android上Chrome浏览器上的同一页面会像往常一样打开用户选择。代码相同,来自同一台服务器。代码在15天内未被修改。我认为问题在于谷歌服务器上的gapi JS客户端代码发生了一些变化。 检查chrome上的PWA Google登录选项卡会显示以下错误: 未捕获无法从URL哈希获取父源强> 谷歌开发者控制台上的源代码还可以 有人知道怎么解决这个问题吗 Edit1:代码块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
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隐姓埋名模式时,它工作了!是吗?