我正在努力实施Oauth Api,并且发现有一些我无法验证的事情,如果有人能提供澄清,我会很高兴.警告我可能会絮絮叨叨,所以我会尝试用粗体标记我的问题.
根据oauth 1.0规范http://tools.ietf.org/html/rfc5849,我认为oauth params对签名进行百分比编码的方式与在线时不同.第3.6节http://tools.ietf.org/html/rfc5849#section-3.6 "它仅用于构造签名基本字符串和"授权"头字段."
RFC3986 http://tools.ietf.org/html/rfc3986 这似乎是正常请求中使用的百分比编码方案.但是我没有看到它将任何类型的'this'映射给'that'所以我假设如果字符在保留列表中,则应使用十六进制等效.
签名编码时''(空格)是%20的唯一区别是什么?Oauth规范参考了这一点,但我不能老实地找到其他规范中定义的位置.如果有人能指出我提到的地方以及我可能误解了它,那将是非常棒的.
其他空白字符应该是%20吗?在规范中哪里提到了那个?
传统的UrlEncode是否适用于表单体和查询参数?
最后,我有一些示例输出,我希望验证.我试图显示Oauth Signature Encoded字符和Url编码字符之间的区别.再一次,唯一的区别似乎是'','*'和'〜'的处理
Char Oauth Url
* %2A *
~ ~ %7E
% %25 %25
! %21 %21
: %3A %3A
/ %2F %2F
= %3D %3D
& %26 %26
+ %2B %2B
%20 +
, %2C %2C
@ %40 %40
\r\n %0D%0A %0D%0A
\n %0A %0A
\r %0D %0D
" %22 %22
? %3F %3F
( %28 %28
) %29 %29
| %7C …Run Code Online (Sandbox Code Playgroud)