gpt4 book ai didi

api - OpenID 身份验证和 API 访问

转载 作者:行者123 更新时间:2023-12-03 14:47:40 26 4
gpt4 key购买 nike

OpenID 身份验证本质上是基于浏览器的。如果我想允许 OpenID 用户针对 API 进行身份验证以在替代客户端中使用,是否有公认的最佳实践?

例如,如果用户尝试使用他们的 OpenID 登录 iPhone 应用程序,那将如何工作?我能想到的唯一一件事就是为他们生成某种 API token 并让用户在某处手动输入它。这种方法对用户不友好。

这就是像 Basecamp 这样的网站的方式。工作,但对我来说仍然很笨重。

最佳答案

您看到的问题并不是 OpenID 独有的。任何无密码身份验证方案都可能存在此问题。 OAuth (http://oauth.net/) 是一种开放标准的解决方案,在许多网站上迅速获得关注。它完全独立于用户的身份验证方式,因此他们的 OpenID 提供者不需要支持甚至不需要知道您的站点(OAuth 术语中的“服务提供者”)正在使用 OAuth。您的 API 客户端可以是基于 Web 的,甚至可以是本地应用程序!

该过程将是这样的:

角色:

  • 用户:拥有您网站帐户的人。
  • 服务提供商:您的网站,它有一个程序化 API,需要一些凭据才能访问。
  • 消费者:需要访问服务提供者 API 的客户端,无论是 Web 还是本地应用程序。

  • 流动:
  • 用户是消费者。他表示他想访问服务提供商的数据。
  • 用户要么被重定向(如果消费者是网站),要么浏览器被弹出(如果消费者是本地应用程序)并且用户看到服务提供商网站。
  • 用户要么已经通过持久性 cookie 登录到服务提供者,要么用户必须先登录到服务提供者,但是已经完成(在你的情况下是 OpenID)。
  • 服务提供者然后询问用户:“消费者(某些消费者)想要访问您的数据(或我们的 API 或其他)。您要授权吗?(是/否)
  • 用户确认,浏览器窗口关闭或被重定向回消费者站点。
  • 通过一些 OAuth 协议(protocol)魔法,消费者现在拥有一个 secret 凭证,它可以使用它来访问您的 API 并访问您刚刚授权的任何用户私有(private)信息。

  • 显然,我不能在此处包含整个 OAuth 规范,但是您可以从上面看到,这应该可以解决您的问题。 OAuth 库的存在是为了轻松添加对它的支持。

    如果你碰巧在使用 ASP.NET,我建议 http://dotnetopenid.googlecode.com/因为它最近添加了 OAuth 支持(v3.0 beta 1)。

    关于api - OpenID 身份验证和 API 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/544388/

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