【问题标题】:Using OAuth... I don't get it. What am I supposed to do?使用 OAuth... 我不明白。我应该做些什么?
【发布时间】:2013-02-22 02:49:30
【问题描述】:

好的,所以我尝试使用OAuth(不是我的选择),但我不太明白。

我想以特定用户的身份访问 API。我想我需要得到一个令牌,然后以某种方式发送它......但这很奇怪。我阅读了文档,了解了大概念,但我不知道如何实际使用它。

以下是我尝试连接的网站的数据:

Consumer Key
Consumer Secret
Request Token URL
Access Token URL
Authorize Url

我必须承认我完全一无所知,所以任何指针都会有所帮助。

【问题讨论】:

  • 大多数平台都有 oauth 库,可以消除很多痛苦。你在什么平台上编码?将使回答更容易。
  • 我正在尝试让它与 Google 小工具一起使用
  • 那么作为托管在小工具容器中的 Javascript 小工具?在这种情况下,请阅读wiki.opensocial.org/index.php?title=Introduction_to_makeRequest,其中记录了 gadgets.io.makeRequest 调用 - 它为您处理了很多 oauth 混乱。您仍然需要以某种方式向容器注册密钥/秘密,这对于每个容器都是不同的(通过电子邮件发送它们,或者在安装小工具时在配置 Web 表单中等)

标签: api oauth


【解决方案1】:

对于初学者,请阅读http://oauth.net/core/1.0a,它包含您需要了解的所有内容(至少就它们如何组合在一起而言 - 您的实现将是您为使用规范而编写的内容)

在高层次上,请求流的工作方式如下:

  • 从您的应用向 OAuth 定义的提供者的请求令牌 URL 发出请求(这包括签名生成请求的签名哈希并将其作为参数包含在内)
  • 提供者发回一个未经授权的请求令牌 - 这是当前 oauth 请求生命周期的单一用途标识符。
  • 您的应用程序将用户重定向到提供商的授权 URL,这是提供商直接对用户进行身份验证的地方(例如,使用登录表单,或通过在用户浏览器中检查提供商站点的 cookie ),提供商也可能会要求用户授予权限,以便为他们的用户帐户授予对您应用的访问权限
  • 假设一切顺利,提供者将用户重定向回您在首次将用户发送到提供者进行身份验证时提供的回调 URL - 它们还在 URL 中包含原始 请求令牌 ,以及一个新的一次性验证码,用于标识请求令牌已被授权
  • 然后,您的应用会向提供者的访问令牌 URL 发出请求,传递请求令牌、验证码并再次对请求进行签名。
  • 然后提供商会检查您提交的请求令牌,确保它之前已经被用户验证过,并检查验证码是否与它最初发回的验证码匹配,并且请求令牌尚未被交换已经有访问令牌。然后,提供者会向您发送一个闪亮的新 访问令牌 和令牌秘密供您使用
  • 现在您可以实际访问提供商的数据 - 您可以连接到他们公开的任何 Web 服务并与之交互 - 但您需要签署每个请求以证明您是谁,并且用户已经确定您的应用程序可以对其进行操作代表提供者。请求包括通常的 OAuth 参数(包括访问令牌),并使用消费者密码和令牌密码进行签名。

您只需执行一次请求/授权/访问即可获得访问令牌。一旦你得到了它,你就可以继续使用它(甚至将它存储在你的数据库中以对抗用户),并将它重用于任何未来的请求 - 直到提供者决定令牌已过期或用户明确禁止从您的应用访问他们在提供商网站上的个人资料。

(是的,我知道这很乱,但是大多数平台都有库来处理大部分繁重的工作)

【讨论】:

    猜你喜欢
    • 2012-05-12
    • 2023-04-06
    • 1970-01-01
    • 2021-06-04
    • 2021-02-27
    • 2013-05-11
    • 2012-11-24
    • 2011-02-12
    • 1970-01-01
    相关资源
    最近更新 更多