OAUTH集成过程中一些细节问题做个笔记

部分第三方的网站通过oauth集成的过程中,出现的细节上的问题导致无法集成到Provider

1,参数编码问题

[color=red]来自互联网[/color]:

所有参数名称和值都必须根据[RFC3986]所定义的百分号机制进行转义。 保留字符集([RFC3986] section 2.3)内的不得被编码,其它的必须被编码,编码后的十六进制字符必须[color=red]大写[/color]。 百分号转换前的参数名称和值的文本必须是[color=red]UTF-8[/color]编码,见[RFC3629]。


[color=red]非保留字符 = 字母, 数字, '-', '.', '_', '~'[/color]

2,请求字符串拼接


请求参数被收集起来,排序并串接为一个普通的字符串:

除realm以外OAuth HTTP Authorization 首部中的参数
HTTP POST请求体中的参数(content-type为application/x-www-form-urlencoded)。
HTTP GET URL中的查询部分参数(定义于 [RFC3986] section 3).
oauth_signature参数必须被排除。

参数按照以下方式正常化为一个字符串:

按照参数名字典顺序排序。同名参数按其值排序,例如:
a=1, c=hi%20there, f=25, f=50, f=a, z=p, z=t
已排序参数串接为一个字符串。 每个参数名后跟一个“=”字符(ASCII代码61),无论参数值是否为空。 每对参数之间用“&”字符(ASCII代码38)分开。例如:
a=1&c=hi%20there&f=25&f=50&f=a&z=p&z=t


3,返回含义


HTTP 400 Bad Request
Unsupported parameter
Unsupported signature method
Missing required parameter
Duplicated OAuth Protocol Parameter

HTTP 401 Unauthorized
Invalid Consumer Key
Invalid / expired Token
Invalid signature
Invalid / used nonce


总结: oauth10a的细节较多, 可以参照文档仔细对照实现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值