OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准。
oauth请求过程:
获取未授权的request token
请求参数:
OAUTH_consumer_key:消费方键值。
OAUTH_signature_method:消费方签署本请求所用的签名方法。
OAUTH_signature:签名,定义于签署请求 (签署请求)。
OAUTH_timestamp:定义于Nonce and Timestamp (单次值与时间戳)。
OAUTH_nonce:定义于Nonce and Timestamp (单次值与时间戳)。
OAUTH_version:可选。
额外参数:由服务提供方定义的任意额外参数
服务方返回结果,响应包含如下参数:
OAUTH_token:请求令牌
OAUTH_token_secret:令牌密钥
附加参数:由服务提供方定义的任意参数。
获取用户授权的request token
请求参数:
OAUTH_token:可选。在前述步骤中获得的请求令牌。服务提供方可以声明此参数为必须,也可以允许不包含在授权URL中并提示用户手工输入。
OAUTH_callback:可选。消费方可以指定一个URL,当 获取用户授权 (获取用户授权)成功后,服务提供方将重定向用户到这个URL。
附加参数:由服务提供方定义的任意参数。
服务提供方将用户引导回消费方
如果消费方在OAUTH_callback中提供了回调URL(在消费方引导用户至服务提供方 (消费方引导用户至服务提供方)中描述),则服务提供方构造一个HTTP GET请求URL,重定向用户浏览器到该URL,并包含如下参数:
OAUTH_token:被用户授权或否决的请求令牌
回调URL可以包含消费方提供的查询参数,服务提供方必须保持已有查询不变并追加OAUTH_token参数。
用授权的request token换取Access Token
消费方请求访问令牌参数:
OAUTH_consumer_key:消费方键值。
OAUTH_token:之前获取的请求令牌。
OAUTH_signature_method:消费方使用的签署方法。
OAUTH_signature:签署请求 (签署请求)中定义的签名。
OAUTH_timestamp:在单次值与时间戳 (单次值与时间戳)中定义。
OAUTH_nonce:在单次值与时间戳 (单次值与时间戳)中定义。
OAUTH_version:版本号,可选。
返回参数:
OAUTH_token:访问令牌。
OAUTH_token_secret:令牌密钥。
访问受保护资源
请求参数:
OAUTH_consumer_key:消费方键值。
OAUTH_token:访问令牌。
OAUTH_signature_method:消费方使用的签署方法。
OAUTH_signature:签署请求 (签署请求)中定义的签名。
OAUTH_timestamp:定义于单次值与时间戳 (单次值与时间戳).
OAUTH_nonce:定义于单次值与时间戳 (单次值与时间戳).
OAUTH_version:版本号,可选。
oauth请求过程:
获取未授权的request token
请求参数:
OAUTH_consumer_key:消费方键值。
OAUTH_signature_method:消费方签署本请求所用的签名方法。
OAUTH_signature:签名,定义于签署请求 (签署请求)。
OAUTH_timestamp:定义于Nonce and Timestamp (单次值与时间戳)。
OAUTH_nonce:定义于Nonce and Timestamp (单次值与时间戳)。
OAUTH_version:可选。
额外参数:由服务提供方定义的任意额外参数
服务方返回结果,响应包含如下参数:
OAUTH_token:请求令牌
OAUTH_token_secret:令牌密钥
附加参数:由服务提供方定义的任意参数。
获取用户授权的request token
请求参数:
OAUTH_token:可选。在前述步骤中获得的请求令牌。服务提供方可以声明此参数为必须,也可以允许不包含在授权URL中并提示用户手工输入。
OAUTH_callback:可选。消费方可以指定一个URL,当 获取用户授权 (获取用户授权)成功后,服务提供方将重定向用户到这个URL。
附加参数:由服务提供方定义的任意参数。
服务提供方将用户引导回消费方
如果消费方在OAUTH_callback中提供了回调URL(在消费方引导用户至服务提供方 (消费方引导用户至服务提供方)中描述),则服务提供方构造一个HTTP GET请求URL,重定向用户浏览器到该URL,并包含如下参数:
OAUTH_token:被用户授权或否决的请求令牌
回调URL可以包含消费方提供的查询参数,服务提供方必须保持已有查询不变并追加OAUTH_token参数。
用授权的request token换取Access Token
消费方请求访问令牌参数:
OAUTH_consumer_key:消费方键值。
OAUTH_token:之前获取的请求令牌。
OAUTH_signature_method:消费方使用的签署方法。
OAUTH_signature:签署请求 (签署请求)中定义的签名。
OAUTH_timestamp:在单次值与时间戳 (单次值与时间戳)中定义。
OAUTH_nonce:在单次值与时间戳 (单次值与时间戳)中定义。
OAUTH_version:版本号,可选。
返回参数:
OAUTH_token:访问令牌。
OAUTH_token_secret:令牌密钥。
访问受保护资源
请求参数:
OAUTH_consumer_key:消费方键值。
OAUTH_token:访问令牌。
OAUTH_signature_method:消费方使用的签署方法。
OAUTH_signature:签署请求 (签署请求)中定义的签名。
OAUTH_timestamp:定义于单次值与时间戳 (单次值与时间戳).
OAUTH_nonce:定义于单次值与时间戳 (单次值与时间戳).
OAUTH_version:版本号,可选。