ska*_*v85 7 base64 oauth oauth-2.0 twitter-oauth bearer-token
Twitter的API要求发送Authorization标头,该标头是与API密钥连接的API密钥的base64编码.在Node中,我使用:
var base64 = new Buffer(apiKey + ':' + apiSecret).toString('base64');
Run Code Online (Sandbox Code Playgroud)
发送的标头变为:
Authorization: 'Basic ' + base64
Run Code Online (Sandbox Code Playgroud)
base64编码字符串"apiKeyHere:apiSecretHere"有什么意义?为什么不接受包含原始api凭证的Authorization标头?
这个问题类似于base 64编码的目的是什么以及它在HTTP基本身份验证中使用的原因?但投票的答案并没有完全回答我的问题.Twitter的api密钥和api密钥已经是HTTP兼容的字符.他们看起来像这样(这些不是真的):
消费者密钥(API密钥)8dme3utVQfOhlPk5BUG9XbFxR
消费者秘密(API Secret)QFZXoC7MP72JZtGMBNpjLGI4Vl1xr1q9dyPLp3u7jGtkESpbLm
那么为什么base64会编码呢?此外,该帖子指出"编码的目的是将可能在用户名或密码中的非HTTP兼容字符编码为与HTTP兼容的字符." 用户名和密码不是HTTP兼容字符吗?
虽然我在w3文档中找不到它,但我相信只要协议将Authorization标头的凭证编码为base64,无论它有什么内容.就Twitter而言,它并没有太大的区别,但在其他情况下,凭据可以包含这些字符.为了保持统一并防止是否应编码的错误,应对所有凭证进行编码.
另一个原因可能是,浏览器也以相同的方式编码凭证.Twitter可能也想接受这一点.
| 归档时间: |
|
| 查看次数: |
10523 次 |
| 最近记录: |