OAuth学习

一、 OAUTH相关的三个URL:
  Request Token URL: 获取未授权的Request Token服务地址;
  User Authorization URL: 获取用户授权的Request Token服务地址;

  Access Token URL: 用授权的Request Token换取Access Token的服务地址;

二、获取未授权的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认证授权流程

  在弄清楚了OAUTH的术语后,我们可以对OAUTH认证授权的流程进行初步认识。其实,简单的来说,
  OAUTH认证授权就三个步骤,三句话可以概括:
  1. 获取未授权的Request Token
  2. 获取用户授权的Request Token
  3. 用授权的Request Token换取Access Token
  当应用拿到Access Token后,就可以有权访问用户授权的资源了。大家可能看出来了,这三个步骤不就是对应OAUTH的三个URL服务地址嘛。一点没错,上面的三个步骤中,每个步骤分别请求一个URL,并且收到相关信息,并且拿到上步的相关信息去请求接下来的URL直到拿到Access Token。
  具体每步执行信息如下:
  A. 使用者( 第三方软件 )向OAUTH服务提供商请求未授权的Request Token。向Request Token URL发起请求,请求需要带上的参数见上图。
  B. OAUTH服务提供商同意使用者的请求,并向其颁发未经用户授权的oauth_token与对应的oauth_token_secret,并返回给使用者。
  C. 使用者向OAUTH服务提供商请求用户授权的Request Token。向User Authorization URL发起请求,请求带上上步拿到的未授权的token与其密钥。
  D. OAUTH服务提供商将引导用户授权。该过程可能会提示用户,你想将哪些受保护的资源授权给该应用。此步可能会返回授权的Request Token也可能不返回。如Yahoo OAUTH就不会返回任何信息给使用者。
  E. Request Token 授权后,使用者将向Access Token URL发起请求,将上步授权的Request Token换取成Access Token。请求的参数见上图,这个比第一步A多了一个参数就是Request Token。
  F. OAUTH服务提供商同意使用者的请求,并向其颁发Access Token与对应的密钥,并返回给使用者。
  G. 使用者以后就可以使用上步返回的Access Token访问用户授权的资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值