Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么OAuth设计为具有请求令牌和访问令牌?_Oauth_Protocols_Token - Fatal编程技术网

为什么OAuth设计为具有请求令牌和访问令牌?

为什么OAuth设计为具有请求令牌和访问令牌?,oauth,protocols,token,Oauth,Protocols,Token,在OAuth协议中,服务消费者将要求用户授权服务提供商域中的请求令牌,然后将请求令牌交换给服务提供商的访问令牌 我想知道为什么OAuth被设计为在协议中有两个令牌 为什么不在这个过程中只使用一个令牌呢?也就是说,用户将授权令牌,服务消费者将使用令牌从提供者检索信息 OAuth协议支持网站或 访问的应用程序(使用者) 来自web服务的受保护资源 (服务提供商)通过API,无需 要求用户披露其 服务器的服务提供商凭据 消费者。更一般地说,OAuth 创建一个可自由实现的 API通用方法 认证 一个示

在OAuth协议中,服务消费者将要求用户授权服务提供商域中的请求令牌,然后将请求令牌交换给服务提供商的访问令牌

我想知道为什么OAuth被设计为在协议中有两个令牌

为什么不在这个过程中只使用一个令牌呢?也就是说,用户将授权令牌,服务消费者将使用令牌从提供者检索信息

OAuth协议支持网站或 访问的应用程序(使用者) 来自web服务的受保护资源 (服务提供商)通过API,无需 要求用户披露其 服务器的服务提供商凭据 消费者。更一般地说,OAuth 创建一个可自由实现的 API通用方法 认证

一个示例用例是允许 打印服务printer.example.com (消费者),以访问私人 存储在photos.example.net上的照片 (服务提供商)没有 要求用户提供 photos.example.net到的凭据 printer.example.com

OAuth不需要特定的用户 接口或交互模式,或 它是否规定了服务提供商如何提供服务 对用户进行身份验证,使 非常适合病例的方案 其中身份验证凭据是 消费者无法使用,例如 使用OpenID

OAuth的目标是统一经验和经验 委托网络的实现 将服务身份验证转换为单个, 社区驱动协议。非统组织 基于现有协议和最佳 已独立完成的实践 通过各种网站实施。一 开放标准,由大型和 小型供应商一样,促进了 为客户提供始终如一、值得信赖的体验 应用程序开发人员和 这些应用程序的用户

总而言之,用户为OAuth请求令牌提供用户名和密码。您向希望使用OAuth连接到某物的服务提供请求令牌,它们将接收访问令牌。这使得服务永远不会看到/使用用户名和密码。

出于可用性和安全原因。

。。。虽然这主要是OAuth规范演变的产物,双令牌设计提供了一些可用性和安全性特性,因此值得留在规范中。OAuth在两个通道上运行:一个前端通道用于吸引用户并请求授权,另一个后端通道用于消费者直接与服务提供商交互通过将访问令牌限制在后台通道,令牌本身对用户保持隐藏状态。这允许接入令牌具有特殊含义,并且其大小大于请求授权时向用户公开的前频道请求令牌,并且在某些情况下需要手动输入(移动设备或机顶盒)。

===

请注意,这个问题是重复的


如果初学者指南中的解释不清楚,请阅读。

请求令牌由服务消费者生成。无法从请求令牌还原用户名和密码。那么为什么不直接使用请求令牌作为访问令牌呢?这就是xAuth所做的,但我找不到任何原因。xAuth要求用户与客户端应用共享他的凭据(用户名和密码)。OAuth的设计就是为了避免这种情况的发生。OAuth的链接初学者指南似乎被破坏了。此外,术语“请求令牌”目前似乎未被使用。它与来自的授权代码类似吗?