我想为我的网络应用程序提供经过身份验证的 API 访问。此类服务的消费者通常是其他网站/服务。
验证这些用户身份的最佳方法是什么? OAuth、openID、http 身份验证?
正如我们的工作一样,“哪个最好?”的答案是这样的。是“这取决于”。 :)
-
HTTP认证- 如果您已经允许客户通过 ID 和密码登录您的服务,您可能只需要做很少的工作就可以让它与您的 API 很好地配合。如果您的 API 基本上是单一用途并且不需要详细的权限,那么您可以在这里相当快地让某些东西运行起来。
-
API令牌- 如果您希望客户端能够在不提供密码的情况下轻松进行身份验证(想想构建与您的 API 交互的服务的公司;也许 IT 部门不希望开发团队知道密码;等等),那么将 GitHub 上的随机 API 令牌附加到用户帐户可能是最快的方法。作为奖励,您可以提供一种重新生成 API 令牌的方法,而无需更改帐户密码。
-
OAuth- 如果您拥有多个权限或想要更细粒度地控制客户端如何以及何时访问您的 API,OAuth 是一个不错的选择(IMO,OAuth2 更容易使用,并且支持获取访问令牌的多种方法 https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-05#page-9)。此外,许多语言都有库、gems 等,可以让它们简化 OAuth 工作流程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)