下面是我的初始化代码:
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。问题是,在每个堆栈溢出/引用中,我发现它们都指定了在Authorised JavaScript origins和Authorised redirect URIs上我必须使用http://localhost而不是http://127.0.0.1。如果我这样做,我会得到那个错误,如果我尝试登录,就会得到一个Permission denied to generate login hint for target domain.。
如果在这两种情况下都使用http://127.0.0.1,则在初始化时没有idpiframe_initialization_failed,但在尝试登录时获得相同的拒绝权限。
这是没有意义的,没有其他方法来指定本地主机,我只是不能使用API。
发布于 2018-12-22 20:47:21
就我而言,这是个两面的问题。
1.如何将您的源添加到google控制台?
OAuth 2.0 client IDs并在本节中选择(或创建)一个客户端ID。Restrictions -> Authorized JavaScript origins部分并添加http://localhost或http://localhost:8000 (指定您需要的端口)。2.清除缓存.
如果第一步没有解决问题,则需要清除缓存。
如果您只想删除localhost缓存,则可以在Chrome中使用以下方法:
有时缓存清除不起作用。为了确保它仍然是一个缓存问题,请使用Incognito模式打开一个浏览器,然后再次检查您的站点。
发布于 2018-10-01 04:30:42
为了节省将来的读者,我通过在客户机ID创建(凭据/开发人员控制台)中的“授权Javascript”上准确地键入http://www.localhost来从本地主机进行身份验证。完全不明显和反用户,但http://localhost或http://127.0.0.1都不起作用。
发布于 2019-04-08 11:22:09
对我来说,通过禁用AdBlocker解决了问题
https://stackoverflow.com/questions/52529360
复制相似问题