Google Sign In API OAuth2- Error: invalid_request

Google Sign In API OAuth2- Error: invalid_request

我在 google 登录 API 时遇到问题。我按照 tutorial 从 Google Dev 配置它。安慰。看起来很简单...我在 Stack Overflow 上阅读了一些类似的问题,但我能找到的只是:添加您的授权来源...(顺便说一下 'Authorized origins' 是什么?)

这是我插入 PHP 网页的代码:

<head>
  <title>CrateBoxStudio</title>
  <meta name="google-signin-client_id" content="**MYCODE**-nk3amkhq4disgfjmcsd53gku38bk6rpv.apps.googleusercontent.com">
  <script src="https://apis.google.com/js/platform.js" async defer></script>
</head>

我没有在上面的代码中包含按钮和 javacript 函数,因为我认为这对我的问题并不重要。我还排除了 boostrap 和 jQuery 东西以及其他不相关的标签。

The error simple description : Permission denied to generate login hint for target domain.

完整的错误详细信息(请求的详细信息):

redirect_uri=storagerelay://http/192.168.0.111?id=auth885739
response_type=permission id_token
scope=email profile openid
openid.realm=
client_id=**MYCODE**-nk3amkhq4disgfjmcsd53gku38bk6rpv.apps.googleusercontent.com
ss_domain=http://192.168.0.111
fetch_basic_profile=true
gsiwebsdk=2

192.168.0.111是我服务器的本地IP。这是我的服务器本地 IP,因为我在本地测试它。如果在我家外访问,这将是我的路由器 IP。 (我们不能在授权来源中使用数字 IP,这可能是相关的吗?)

以上是我在我的网站主页上点击登录按钮时出现的错误(我现在只有1页,index.php) 自己看:http://crateboxstudio.com(这个 URL 被添加到来自 Google 控制台的授权 JavaScript 来源。URL 将我们带到我的 index.php 页。).

所以,

此域名由 GoDaddy 托管。

我的服务器是 Apache2 上的 运行 和 Ubuntu 服务器。

Google 登录按钮抛出上述错误

我只有 1 页 (index.php)。这是登录按钮所在的位置。

我的域名重定向到端口 8080 上的路由器 IP,被 URL.

隐藏

我在控制台的域验证的允许域中添加了 crateboxstudio.com 和 lan.crateboxstudio.com。

除了上面提到的,我什么都没做。

授权 JavaScript 来源:

授权的重定向 URI: -没什么...

有人知道我如何才能获得有关我的错误的更多信息或如何修复它吗?

您必须在 Developer Console 的 Google 项目中将本地域(用于测试)添加到允许的域列表中。 Google 将拒绝来自此处未列出的任何域的身份验证请求。

毕竟我发现我的goDaddy域名配置有问题。我切换到 Google 域(为了让事情更简单,界面非常清晰和简单),我发现我正在尝试将我的域转发到我的服务器 IP。

这是不正确的。 API 不支持转发域。它必须是 A 记录(或者任何类型,也许我对这些不太了解)

我的域设置来自 Google 个域:

在上图中,我创建了2条A(或者什么类型的,我对这些了解不多)记录。 @(当前域名的快捷方式,AKA crateboxstudio.com)是我的public IP。

第二个 lan 是我用于本地测试的子域 (lan.crateboxstudio.com)。

带有大蓝色 X 的区域是 goDaddy 上我试图将我的域转发到某个 IP 的等效部分。不能那样做...但是不知道为什么。

我的凭据设置来自 Google API 控制台:

上图中的 www 和非 www 是必填项。

终于成功了!但是,我的 ISP 封锁了 80 端口,所以我不能只输入 crateboxstudio.com,我需要输入 crateboxstudio.com:8080...