【问题标题】:How does google-maps authenticate REST api call?google-maps 如何验证 REST api 调用?
【发布时间】:2019-10-23 19:18:24
【问题描述】:

我正在开发一个 REST api,我需要在其中对客户端进行身份验证。当客户端进行 google map api 调用时,我想以 Google 身份验证客户端的方式对客户端进行身份验证。

对于谷歌地图,谷歌采用Package nameSHA-1哈希,然后谷歌提供api key。使用该 ApiKey,Android 应用程序调用 Google 地图服务器。然后他们要么拒绝请求,要么根据身份验证返回响应。

Q.1。 google-map-server 如何对使用正确 ApiKey 向 Google Map 服务器进行 REST 调用的 android 应用程序进行身份验证?

【问题讨论】:

    标签: android google-maps authentication google-maps-api-3 restful-authentication


    【解决方案1】:

    此答案基于 Google Directions API。因为 Google Map Android SDK 在.getMapAsync() 下进行 REST 调用,所以没有关于它如何调用它的文档。

    我假设它正在执行与 Google Directions API 中使用的相同的 REST 调用。

    它通过 REST 查询值发送 api 密钥。 https://maps.googleapis.com/maps/api/directions/json?key=API_KEY.

    现在我不确定您为什么要使用 API 密钥对客户端进行身份验证。

    【讨论】:

    • > 现在我不确定您为什么要使用 API 密钥对客户端进行身份验证。因为当您从 Google 控制台生成 android 设备的 API 密钥时,它需要应用程序包名称和 SHA-1,假设您有某人的 API 密钥,现在您想在您的 android 应用程序中使用该 API 密钥。现在你不能,因为谷歌不允许你,因为它已经知道有权使用该 API 密钥的应用程序。
    • 没错API key 可以将API 的使用限制在某个android 应用中,但它的主要用途是跟踪API 的使用情况。我不确定你想要什么。您想生成一个 API 密钥供您的客户使用吗?
    • 嘿!我想知道应用程序身份验证部分(使用有效 api 密钥调用谷歌地图服务器的客户端)。认为 !我为一个 android 应用程序生成了一个 API 密钥(dummy package namedummy-SHA-1)。但现在我在不同的 android 应用程序中使用相同的 Api 密钥。但是只有一个调用成功,这是针对具有包名称dummy package namedummy-SHA-1 的应用程序。其他应用程序拨打的电话将失败。我想知道即使 API 密钥正确,谷歌是如何做到这一点的。
    • 它通过标头发送package namesha1X-Android-PackageX-Android-Certsha1 必须是小写且没有分号。它来自这里stackoverflow.com/questions/54898496/…
    • 另请注意,REST Web 服务(例如 Directions API 或 Distance Matrix API)不支持 Android 应用程序限制(包名称和 SHA-1)。对于 REST Web 服务,唯一支持的限制是 IP 地址:developers.google.com/maps/faq#keysystem
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    相关资源
    最近更新 更多