Mar*_*ark 2 twitter oauth url-encoding
我正在阅读http://dev.twitter.com/pages/auth上的演练,但编码回调URL时似乎存在不一致.回调列为:
oauth_callback - http:// localhost:3005/the_dance/process_callback?service_provider_id = 11
签名基本字符串列为:
POST&... oauth_callback%3D http%253A%252F%252Flocalhost%253A3005%252Fthe_dance%252Fprocess_callback%253Fservice_provider_id%253D11%26oauth_consumer_key%3D ...
这里的回调似乎是双重编码的.
签名的授权标题列为:
OAuth oauth_nonce ="QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk",oauth_callback =" http%3A%2F%2Flocalhost%3A3005%2Fthe_dance%2Fprocess_callback%3Fservice_provider_id%3D11 ",...
这里,回调似乎是单个URL编码.为什么他们不一致?
编码不一致,URL只是在两种不同的情况下使用,有两种不同的要求.
该网址在您的应用中以未编码方式开始.您发布的第二个示例是将作为标头传递给服务器的值,因此它必须是URL编码的(只有一次).
签名的授权标题列为:OAuth oauth_nonce ="QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk",oauth_callback ="http%3A%2F%2Flocalhost%3A3005%2Fthe_dance%2Fprocess_callback%3Fservice_provider_id%3D11",...
然后,必须将所有OAuth标头参数的值与其他所需值组合以创建用于签名的基本字符串.基本字符串是在传递给服务器时根据值创建的.因此,您将获取传递给服务器的值,已编码的URL,并将其与其他值(每个值必须进行URL编码)相结合,以形成由...分隔的新字符串&.
您可以看到为什么必须这样做,因为基本字符串的第三部分包含查询参数,这些参数的值已经过URL编码(如oauth_callback)并&用作分隔符.为了将此查询参数列表(包含&)安全地组合到基本字符串中(也&用作分隔符),在连接之前必须再次对其进行URL编码.此时,oauth_callback已经编码了两次,一次是独立的,一次是作为更大组合值的一部分:
签名基本字符串列为:POST&... oauth_callback%3Dhttp%253A%252F%252Flocalhost%253A3005%252Fthe_dance%252Fprocess_callback%253Fservice_provider_id%253D11%26oauth_consumer_key%3D ...
| 归档时间: |
|
| 查看次数: |
1545 次 |
| 最近记录: |