在登录提示和授予应用权限后,我正在实施Google登录的混合/一次性验证码流程,并在Chrome的JS控制台中遇到此错误,大概是当Google代码尝试回调该按钮时:
Uncaught SecurityError:阻止原始“https://ww2.fa.org”的框架访问源代码“https://accounts.google.com”.协议,域和端口必须匹配.
在Safari或IE中似乎并不会发生这种情况,有时在Firefox中也会出现类似的权限错误,但是在Chrome中可以重复使用.使用登录按钮刷新框架(在google旁边的提示之后)通常会导致刷新按钮“知道”登录成功调用成功处理程序…它应该始终工作没有刷新,但只是不.
有什么想法吗?登录时间为https://ww2.fa.org/gauth/,如果您倾向于查看,它只会请求电子邮件的范围.
解决方法
我删除了这个错误消息的方法是将https://accounts.google.com添加到云端开发人员控制台的OAuth客户端设置中的授权JAVASCRIPT ORIGINS API& auth – >证书.
更新
当我切换到使用gapi.auth.signIn而不是gapi.login.render时,实际上并没有修复它,而是重新出现问题. this post中的注释中描述的问题是将authResult的g-oauth-window属性发送到您的后端时进行序列化.删除该参数或仅发送您需要修复的属性.
var signInCallback = function(authResult) { delete authResult['g-oauth-window']; ajaxCallToBackend(authResult); };
希望这可以帮助.