android - Web API 的 API key /应用程序 ID 和 key 如何关联?它们如何协同工作?

标签 android web-services signing

我找到了很多关于如何找到这些键并将它们与我的应用程序集成的教程,但没有人告诉我们它们如何协同工作。为什么需要它们以及它们在 Web 服务上下文中解决什么目的?

我们还必须执行从 key 存储生成哈希 key 并将其注册到不同 Web API 的操作。

我无法理解 Web API 服务如何使用这些 key 以及它们使用哪些属性来生成这些 key 。

据我所知,我们必须在客户端存储应用程序 ID,但出于安全角度考虑,我们在这里不使用 key ,那么 key 在服务器端解决什么要求?

我没有找到任何提供此信息的文档。

请提供任何帮助,以便我能够理解这个概念。

我尝试阅读以下文档,但它们没有提供有关所有这些如何组合在一起的任何信息。

https://developers.facebook.com/docs/facebook-login/android

Facebook API key? Same as Application ID?

https://security.stackexchange.com/questions/19989/facebook-api-app-secret-possible-misuse

最佳答案

这里有很多东西。有些在客户端,有些在服务器端。简而言之,我们可以将它们视为以下内容。

应用程序 key /id:由服务器用来跟踪特定应用程序在一天内发出了多少 API 请求,以便服务器可以在请求计数超过给定阈值时向客户端收费。

secret key :此 key 主要由服务器用来向另一台服务器发出 secret 请求(即服务器到服务器通信)。例如:服务器可以使用此 key ,如果它想要 change app related settings或者说想要validate access token服务器上的 Facebook 客户端。

这就是为什么不允许在客户端存储 key ,因为任何人都可以反编译应用程序,找到此 key 并滥用它。

哈希 key :我们从应用证书生成哈希 key 并将其存储在开发人员控制台上,以便第一个应用程序针对给定哈希进行验证,并在 API 请求得到服务后进行处理。这就是我们的原因如果两个哈希键不匹配,有时会在客户端看到无效哈希键错误。

Use of Facebook key hash?

关于android - Web API 的 API key /应用程序 ID 和 key 如何关联?它们如何协同工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34470013/

相关文章:

php - 使用 SoapClient 时出错,但使用 Web 浏览器时不出错

java - 使用 JAX-WS 声明 Web 方法中未使用的类型

android - 防止盗版的代码签名

.net - 签署 .NET 程序集的最佳实践?

c# - Monodroid ListView更新问题

java - Android ViewFlipper中Rotate3dAnimation的更好实现

android - adb 有苹果硅/M1 版本吗?

javascript - Web 服务引用错误 (asp/vb.net)

c# - 接收方无法验证签名的 XML 消息

android - 从改造响应中获取 JSONArray