0

oauth在获取 access_token 后用于验证保管箱并从保管箱下载文件我正在使用以下签名从保管箱下载文件我通过根、文件的路径、consumerKey 和 oauth_token,signature_method 为 PLAINTEXT,我收到错误

{"error": "Bad oauth_signature for oauth_signature_method 'PLAINTEXT'"}

正在使用的签名如下: https ://api-content.dropbox.com/1/files?oauth_consumer_key=twcek2m7cxtantc&oauth_signature_method=PLAINTEXT&oauth_token=1jczc39y7rn1265&oauth_version=1.0&path=test%2Fut.txt&root=dropbox&oauth_signature=fbs95cfyb2g

我应该怎么做才能解决这个错误?

4

1 回答 1

1

我正在搜索这个并发现:

1) PLAINTEXT 方法不提供任何安全保护,只能通过 HTTPS 等安全通道使用。它不使用签名基本字符串。

2) 服务提供商声明支持所有请求的 HMAC-SHA1 签名方法,仅支持安全 (HTTPS) 请求的 PLAINTEXT。

3) 当与 PLAINTEXT 签名一起使用时,OAuth 协议不会尝试保护用户凭据免受窃听者或中间人攻击。PLAINTEXT 签名算法仅旨在与提供此类保护的传输层安全机制(例如 TLS 或 SSL)结合使用。如果传输层保护不可用,则不应使用 PLAINTEXT 签名方法。

您可以参考此链接http://oauth.net/core/1.0/#anchor22

您还可以检查您的密钥是否正确

签名协议参数设置为以下未加密的值:

oauth_signature_method :设置为明文。oauth_signature :设置为 oauth_consumer_secret 参数的连接编码值和 oauth_token_secret 参数的值。如果值包含一个 . 字符(ASCII 码 46),它必须编码为 %2E。这些值由 分隔。字符(ASCII 码 46),即使为空。结果不得再次编码。例如,如果 Consumer Key 是 dj.9rj$0jd78jf88 并且 Token Secret 是 jjd999(j88ui.hs3,则编码值为:

Consumer Key : dj%2E9rj%240jd78jf88 Token Secret : jjd999%28j88ui%2Ehs3 oauth_signature 值为 dj%2E9rj%240jd78jf88.jjd999%28j88ui%2Ehs3。该值不再被编码,而是在 HTTP 请求中使用。如果 Token Secret 为空,则值为 dj%2E9rj%240jd78jf88。(分隔符 . 被保留)。

于 2013-01-29T12:15:22.293 回答