Google OAuth api 白名单不适用于本地主机和 public ip
Google OAuth api whitelist not working on localhost and public ip
编辑:
所以 Google OAuth 存在很多问题,而不仅仅是原始问题中的问题。但我还是把它放在底部作为其中之一的例子。
新问题:
Google OAuth API 一直显示错误:Not a valid origin for the client: <some_url>
即使我将站点添加到 Authorized JavaScript origins
主要是关于 localhost 和 public IP 还没有域名。
原问题:
您好,我在浏览器中尝试使用 Google OAuth2.0 API 登录时遇到错误。
错误说:
{
error: "idpiframe_initialization_failed",
details: ""Not a valid origin for the client: https://localhost has not been whitelisted for client ID <CLIENT_ID>.apps.googleusercontent.com. Please go to https://console.developers.google.com/ and whitelist this origin for your project's client ID.""}
其中 <CIENT_ID>
是由 google api
提供的实际客户端 ID
我启用了所有这些来源:
我在 nginx
服务器上打开了所有这些端口
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 8000 default_server;
listen [::]:8000 default_server;
listen 5000 default_server;
listen [::]:5000 default_server;
# SSL configuration
#
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
listen 4343 ssl default_server;
listen [::]:4343 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
include snippets/snakeoil.conf;
这里有颜色:
它们都指向同一个网站并且它们都有效,除了:
http://localhost
http://localhost:80
https://localhost
https://localhost:443
使用其他端口我可以登录,但不能使用那些基本端口。
我看到很多类似的问题都通过删除缓存来回答,但在 Vivaldi (chromium) 和 Firefox(在问这个问题之前第一次使用)上可以看到相同的行为
我想我找到了问题。
每次我忘记将位置放入白名单来源时,都会发生一些事情,我的浏览器缓存会记住这个来源不在白名单中,即使将位置添加到白名单后,错误仍然显示。
我不得不清除浏览缓存(为了以防万一,我还删除了应用程序缓存)以恢复行为。
从现在开始,我将在不同的浏览器上测试我的网站,以便我可以自由删除浏览数据。
此外,出于某种原因,您不能在白名单中拥有 IP,因此您必须使用一些 shannanigans,例如 .xip.io
,这只是一个域,当您访问 <some_ip>.xip.io:<some_port>
它 return s ip 是 <some_ip>:<some_port>
(你可以省略 :<some_port>
这样它将 return <some_ip>
而且localhost
简直是一团糟
我也没有设法使端口 80 和 443 在本地主机上工作,但我认为它在 public 服务器上工作 .xip.io
所以
我推荐:
- 最好使用域名
- 否则避免使用 public 类似
.xip.io
的 IP
- 在
localhost
上使用 127.0.0.1
以防万一,也使用 .xip.io
- 使用 burner 浏览器(或私人模式,如果它适合你,但我想测试它是否在默认环境中工作)如果你搞砸了(和你可能会)
- 只需为本地主机使用备用端口
编辑:
所以 Google OAuth 存在很多问题,而不仅仅是原始问题中的问题。但我还是把它放在底部作为其中之一的例子。
新问题:
Google OAuth API 一直显示错误:Not a valid origin for the client: <some_url>
即使我将站点添加到 Authorized JavaScript origins
主要是关于 localhost 和 public IP 还没有域名。
原问题:
您好,我在浏览器中尝试使用 Google OAuth2.0 API 登录时遇到错误。
错误说:
{
error: "idpiframe_initialization_failed",
details: ""Not a valid origin for the client: https://localhost has not been whitelisted for client ID <CLIENT_ID>.apps.googleusercontent.com. Please go to https://console.developers.google.com/ and whitelist this origin for your project's client ID.""}
其中 <CIENT_ID>
是由 google api
我启用了所有这些来源:
我在 nginx
服务器上打开了所有这些端口
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 8000 default_server;
listen [::]:8000 default_server;
listen 5000 default_server;
listen [::]:5000 default_server;
# SSL configuration
#
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
listen 4343 ssl default_server;
listen [::]:4343 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
include snippets/snakeoil.conf;
这里有颜色:
它们都指向同一个网站并且它们都有效,除了:
http://localhost
http://localhost:80
https://localhost
https://localhost:443
使用其他端口我可以登录,但不能使用那些基本端口。
我看到很多类似的问题都通过删除缓存来回答,但在 Vivaldi (chromium) 和 Firefox(在问这个问题之前第一次使用)上可以看到相同的行为
我想我找到了问题。
每次我忘记将位置放入白名单来源时,都会发生一些事情,我的浏览器缓存会记住这个来源不在白名单中,即使将位置添加到白名单后,错误仍然显示。
我不得不清除浏览缓存(为了以防万一,我还删除了应用程序缓存)以恢复行为。
从现在开始,我将在不同的浏览器上测试我的网站,以便我可以自由删除浏览数据。
此外,出于某种原因,您不能在白名单中拥有 IP,因此您必须使用一些 shannanigans,例如 .xip.io
,这只是一个域,当您访问 <some_ip>.xip.io:<some_port>
它 return s ip 是 <some_ip>:<some_port>
(你可以省略 :<some_port>
这样它将 return <some_ip>
而且localhost
简直是一团糟
我也没有设法使端口 80 和 443 在本地主机上工作,但我认为它在 public 服务器上工作 .xip.io
所以
我推荐:
- 最好使用域名
- 否则避免使用 public 类似
.xip.io
的 IP
- 在
localhost
上使用127.0.0.1
以防万一,也使用.xip.io
- 否则避免使用 public 类似
- 使用 burner 浏览器(或私人模式,如果它适合你,但我想测试它是否在默认环境中工作)如果你搞砸了(和你可能会)
- 只需为本地主机使用备用端口