0

我需要知道如何使用 OAuth 1.0a 处理受保护的资源。我已经阅读了官方文档并看到了一些实现,但有些地方我需要澄清。

1)此时,消费者拥有链接到用户的已批准访问令牌,并且提供者服务器对其进行验证。

  • 如果访问令牌无效会怎样?
  • Provider 服务器会发出什么样的状态码?
  • 如果发生这种情况,消费者服务器是否应该将用户重定向到他可以授权另一个令牌的屏幕?

2)如果Access Token验证正确,Consumer和Provider会交换信息。例如,消费者会询问用户的电子邮件地址,而提供商会提供。

  • 应该使用什么协议来交换这些信息?(杰森?)
  • 这些信息应该放在响应的正文中还是放在其他地方?

3) 按照标准,访问令牌和提供的受保护信息应由消费者服务器持久保存。

谢谢

4

1 回答 1

1

您可能应该链接官方文档。但无论如何,这里是您问题的快速答案。

  1. 此时,Consumer 拥有一个链接到用户的已批准访问令牌,并且 Provider 服务器对其进行验证。

如果访问令牌无效会怎样?Provider 服务器会发出什么样的状态码?如果发生这种情况,消费者服务器是否应该将用户重定向到他可以授权另一个令牌的屏幕?

根据RFC 5849,在任何提供的令牌无效的情况下,提供者应返回 401(未授权)状态代码。

当接收到带有无效客户端凭据、无效或过期令牌、无效签名或无效或已使用 nonce 的请求时,服务器应该返回 401(未授权)状态代码。


  1. 如果 Access Token 的验证正确,Consumer 和 Provider 将交换信息。例如,消费者会询问用户的电子邮件地址,而提供商会提供。

应该使用什么协议来交换这些信息?(Json?)这些信息应该放在响应的正文中还是放在其他地方?

他们应该是这个词can,而不是will。一旦身份验证完成,规范不强制要求提供者和请求者之间传输的任何特定信息。这个决定完全取决于应用程序提供商


  1. 遵循标准,访问令牌和提供的受保护信息应由消费者服务器持久保存。

再一次,规范没有强制要求。但是,通常的做法是存储从 Provider 检索到的访问令牌。我不是律师 (IANAL),但请注意,将从提供商检索到的数据保存到第三方系统中可能会违反法律。

于 2013-01-23T03:56:52.187 回答