Google API密钥限制-HTTP引用程序
我把我的Azure网站网址xxxx.scm.azurewebsites.net放在那里,但不起作用(Google Places API Web Service停止工作)。
localhost:44300也不起作用。
我必须将密钥限制设置为"无",然后Google Places API Web服务才能工作。
我做错了什么?
Web服务应该在后端服务器上执行,因此对Web服务的正确限制是IP限制。
HTTP referer限制用于Google Maps JavaScript API等客户端服务,它不适用于web服务。
要在Google Maps API中通过localhost和HTTP(HTTP referrers)接受请求,请按照Google Maps API打印的javascript控制台中的说明进行操作(它告诉您要做什么):
谷歌地图API错误:ReferenNotAllowedMapErrorhttps://developers.google.com/maps/documentation/javascript/error-messages#referer-不允许的地图错误
您要授权的网站URL:http://localhost:3000/en
行您的网站URL要被授权指示您必须在中设置哪个值接受来自这些HTTP引用者(网站)的请求
在这种情况下,例如,对于RubyonRails应用程序,它是:
http://localhost:3000/en
但是,通过使用星号作为通配符,您可以做得更好:
*localhost:3000/*
将值设置为localhost:3000/*无效!
我让Wordpress点击部署在子域www.mydomain.com
上,在谷歌云平台上的虚拟机中使用帐户account_1@gmail.com.
此外,我在子域app.mydomain.com
上的Firebase Hosting上有一个web应用程序,带有帐户account_2@gmail.com.
用户登录Wordpress,PHP后端通过POST API Rest在Firebase Auth中创建用户,接收响应,并允许或不允许访问应用程序。
为了防止恶意使用Firebase API(在应用程序中可见),我启用了HTTP限制。
在这些限制中,我提出:
- 我的应用程序的域(
*.mydomain.com/*
和mydomain.com/*
) - firebase功能域(
*.firebaseapp.com/*
和firebaseapp.com/*
) - 谷歌分析域(
*.googleapis.com/*
和googleapis.com/*
)
我以为这就足够了,但Wordpress无法发送信息。
解决方案:我在linux终端中使用了"ping",指向我的Wordpress站点(ping www.mydomain.com
),得到了以下内容:
64 bytes from xx.yy.zzz.aa.bc.googleusercontent.com (xx.yy.zzz.aa): icmp_seq=70 ttl=56 time=199 ms
我复制了根域(googleusercontent.com
),并将其添加到API限制中,瞧,它起作用了。
(如果我的英语有错误,很抱歉)。