gpt4 book ai didi

iphone - 针对为第三方应用程序开发人员构建的 API 进行用户身份验证

转载 作者:行者123 更新时间:2023-12-03 21:07:10 25 4
gpt4 key购买 nike

我正处于为我的网站开发 API 的早期阶段,以便第三方开发人员可以为其构建 iPhone 应用程序。 API 将具有整个站点功能的有限子集。我遇到的问题是下载应用程序的用户的安全性和身份验证。我提出了以下选项:

  1. 用户输入与在网站上使用的相同的凭据来验证自己的身份。然后,我的 API 将在访问特定于用户的信息时获取凭据。这是我最不喜欢的解决方案,因为第三方应用程序可以记录这些详细信息并在整个网站上恶意使用它们。
  2. 每个用户都会在网站上生成一个唯一的 key ,然后可以在应用程序上使用该 key 进行登录。在访问特定于用户的信息时,我的 API 会将 api key 作为参数。但主要问题是,一旦用户获得了 key 的访问权限,任何应用程序都可以对用户做他们喜欢做的事,即使用户没有授予应用程序这样做的权限。
  3. 为了克服上述问题,第三方开发者必须在网站上注册他们的应用程序,然后用户需要为他们希望使用的每个应用程序生成一个唯一的 key 。然后这将用于登录。这是我的首选解决方案,因为每个应用程序和用户的每个 key 都是唯一的,我可以知道哪个应用程序调用了该 API 以及用户是否批准了它。
  4. 我的最终选择是实现 oAuth。我们目前正在等待 2.0 版本的最终确定,没有时间不断更新我们的代码,因为规范可能会发生变化。

这是我必须构建的第一个 API,我想知道我是否正确理解了这一点?我假设在选项 1 中应用程序可以记录用户凭据并恶意使用它们,但是 Twitter 如何通过其第三方应用程序克服这个问题?或者仅仅取决于用户是否信任他们正在使用的应用程序?如果是这种情况,那么选项 2 和/或 3 同时可行,直到我切换到选项 4。

非常感谢您的反馈。谢谢

最佳答案

OAuth 1 和 OAuth 2 都是可行的选择。但是,您在基本身份验证方面也会取得很大进展(只要它是通过 SSL 进行的)。别害怕:)

我已经通过 OAuth 1.0 实现了 API 提供程序。由于针对许多平台的 OAuth1.0 有很多现成的库,所以我也不会害怕使用它,对于作为提供者的您和第三方实现者来说,大部分工作已经完成。

无论如何:您始终可以使用应用程序 key 和 secret 将基本身份验证与一些非常简单的请求签名结合起来,例如,作为第三方开发人员,您必须调用。

https://yourapi.com/?user=11111&password=232123&random_string=23123&api_key=THIRD_PARTY_KEY&timestamp=1212121212signature=efefefefefef

API 实现者必须使用 key 对 random_string、时间戳和 api_key 进行签名。那么您至少可以找到关闭恶意应用程序的方法。

关于iphone - 针对为第三方应用程序开发人员构建的 API 进行用户身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5976955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com