Javascript 如何解决;idpiframe“初始化失败”;对于本地主机?
这是我的初始化代码:Javascript 如何解决;idpiframe“初始化失败”;对于本地主机?,javascript,google-api,google-oauth,Javascript,Google Api,Google Oauth,这是我的初始化代码: function HandleGoogleApiLibrary() { // Load "client" & "auth2" libraries gapi.load('client:auth2', { callback: function () { // Initialize client &
function HandleGoogleApiLibrary() {
// Load "client" & "auth2" libraries
gapi.load('client:auth2', {
callback: function () {
// Initialize client & auth libraries
gapi.client.init({
apiKey: 'My API Key',
clientId: 'My Client ID',
scope: 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/plus.me'
}).then(
function (success) {
console.log("Yaaay");
},
function (error) {
console.log("Nope");
console.log(error);
}
);
},
onerror: function () {
// Failed to load libraries
}
});
}
这会给我以下错误消息:
details: "Not a valid origin for the client: http://127.0.0.1 has not been whitelisted for client ID 388774754090-o7o913o81ldb2jcfu939cfu36kh9h0q6.apps.googleusercontent.com. Please go to https://console.developers.google.com/ and whitelist this origin for your project's client ID."
error: "idpiframe_initialization_failed"
我的应用程序还没有投入生产,所以为了开发,我使用localhost。问题是,在我发现的每个堆栈溢出/引用上,他们都指定在authorized JavaScript origins
和authorized redirect uri
上,我必须使用http://localhost
而不是http://127.0.0.1
。如果我这样做,我会得到那个错误,并且拒绝为目标域生成登录提示的权限。
如果我尝试登录
如果我使用http://127.0.0.1
在这两种情况下,我都没有得到idpiframe\u初始化\u初始化失败
,但在尝试登录时获得相同的权限被拒绝
这毫无意义,没有其他方法来指定localhost,我就是不能使用API 为了保存将来的读者,我通过准确键入
http://www.localhost
在客户端ID创建(凭据/开发人员控制台)中的“授权Javascript源代码”上。完全不明显和反用户,但都不是http://localhost
或http://127.0.0.1
起作用了。在我的情况下,这是两方面的问题
1。如何将您的源站添加到谷歌控制台?
- 到这里:
- 在顶部选择您需要的项目
- 查找
,并在本节中选择(或创建)客户端IDOAuth 2.0客户端ID
- 在打开的窗口中找到
部分,然后添加Restrictions->Authorized JavaScript origins
或http://localhost
(指定所需的端口)http://localhost:8000
localhost
缓存,则在Chrome
中,您可以采用下一种方法:
- 打开设置->更多工具->开发者工具李>
- 右键单击重新加载按钮->空缓存和硬重新加载
有时缓存清除不起作用。为了确定这仍然是一个缓存问题,请使用匿名模式打开浏览器并再次检查您的站点。对于我来说,问题是通过禁用AdBlocker解决的。您似乎在google api控制台中启用了api限制(api密钥带有HTTP引用限制),转到google开发者控制台,将127.0.0.1添加到允许的域或ipNope中,我已经检查过了。在“申请限制”项下没有限制(无)。另外,在OAuth同意屏幕上,在“授权域”中,我不能放置127.0.0.1或localhost,它说:无效域:必须是顶级私有域。您还可以检查这是否导致问题吗?不,不阻止Cookie。我在试着用。对我来说没用。我已经尝试了本页中介绍的所有解决方案。有什么问题吗?它对我不起作用,它说“无效源:必须以公共顶级域(如.com或.org)结尾。”