要使用Google服务,您可以使用OAuth身份验证,或者,如果您不需要登录用户,则可以使用公共API密钥,将授权域定义为请求的来源。 现在,我正在使用谷歌端点编写自己的API,我将允许用户使用我的API和公共API密钥,而不是使用OAuth,在GAE中有任何内置方法可以这样做,或者我必须写我自己的代码来验证api密钥和我的API请求的来源?
答案 0 :(得分:1)
如果您使用客户端密钥,则可以通过在Google控制台中定义引荐来源列表来限制可以访问API的用户,如果您使用服务器API密钥,则可以通过定义IP列表来限制它相信不能用GAE完成,因为我们没有可以随时更改的服务器IP。
答案 1 :(得分:0)
如果您不使用身份验证,我猜你不需要提供api密钥。
答案 2 :(得分:0)
我有同样的问题。
我找到了一个解决方案,我不确定它是否真的安全。这是解决方案:
我有一些工作:
- 在API控制台上创建OAuthcrédentials
- 我的无提示ID(在您创建凭据时给出)仅在我的服务器端代码中
- 使用此客户端ID构建的端点
- 我没有在我的app引擎应用程序上检查“active oauth authentification”按钮
结果:
- Evry用户无需任何身份识别即可发送数据
- Evrybody可以通过在浏览器控制台中调用gapi.client.xxxx.list来调用webservice的evry methodo - >所以我从API端点删除禁止的方法。
答案 3 :(得分:0)
我已经解决了如何在当前GCP控制台上执行此操作。 Google's documentation似乎缺少在其所在的项目中启用对自己的API的访问的重要步骤。
这是Google文档所说的:
为所有调用者创建一个API密钥
当您不需要区分时 在API的调用者之间,您无需添加API 限制,但您仍需要使用API密钥(以防止 例如匿名访问),则可以为所有用户创建一个API密钥 呼叫者使用。
要为所有调用者创建一个API密钥:
在配置了API的项目或启用了API的项目中,为所有调用者创建一个API密钥。
为每个调用者提供相同的API密钥。
缺少的步骤0是项目中的enable the private API。步骤如下:
然后,第1.5步将API密钥限制为仅访问您的私有API。启用此API后,您将在密钥编辑页面上将其视为API限制选项之一。