首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android中使用带有限制的Google密钥

在Android中使用带有限制的Google密钥
EN

Stack Overflow用户
提问于 2020-04-30 08:21:49
回答 3查看 2.5K关注 0票数 3

在创建Google密钥时,我们可以应用四个限制:-

  1. IP地址(web服务器、cron作业等)。
  2. HTTP引用程序
  3. (For SDK)
  4. ios (For SDK)

现在,如果我们使用他们各自位置的钥匙,一切都会很好。

当我们想从移动(android/ios)访问一些API,使用REST来获取附近的地方以供用户输入时,问题就出现了。现在,在这种情况下,哪些限制是有效的,如何处理呢?

我已经试过了所有的限制,但都行不通。

提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2020-10-22 16:55:38

您可以限制Android应用程序的键,并通过在https调用的标题中传递android包名和sha-1,在我的应用程序中进行http REST调用:

代码语言:javascript
运行
复制
  "X-Android-Package": "your.androidpackage.id"
  "X-Android-Cert": "0000000000000000000000000000000000000000"

*请务必移除沙井中的结肠。

您仍然需要将“key”作为url param进行传递和公开,但是如果没有标题中的凭据,它将被阻塞。

票数 5
EN

Stack Overflow用户

发布于 2020-04-30 19:05:24

您希望使用来自移动应用程序的Places服务。通常,Google、API、web服务应该从后端服务器调用,并且它们只支持IP地址限制。

我建议看一看下面关于可以为不同APIs设置的限制的文章

https://developers.google.com/maps/faq#keysystem

如您所见,Places服务只能使用IP地址限制。直接从移动设备发送Places请求没有多大意义,因为每个设备都有自己的IP地址,而且您不知道用户设备的IP地址。因此,为了保护API密钥,唯一可行的解决办法是创建中间后端服务器。

应用程序应该向您的中间服务器发送请求,中间后端服务器应该使用受保护的API密钥将位置API请求发送给Google,该密钥限制在您服务器的IP地址上,并且代理结果应该返回到您的应用程序。

在这个场景中,您需要两个API键。一个用于Google、Android和Android应用程序限制,另一个用于具有IP地址限制的Places服务。

票数 2
EN

Stack Overflow用户

发布于 2020-04-30 14:54:06

在这种情况下,Android/Ios限制会起作用,将您的SHA放在所需的位置,然后在Android.It上使用您的包名,同时启用您从控制台使用的api。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61518968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档