ReactJS中如何将Twitter密钥与密钥字符串转换为Base64
解决React前端中将密钥拼接字符串转为Base64的问题
嘿,刚好我之前处理过类似的Twitter API认证场景,给你直接上解决方案:
在浏览器环境(React前端属于这个范畴)里,有原生的btoa()方法可以直接将ASCII字符串转换为Base64编码。你的代码只需要补全最后一行就行:
var key = "*****************"; var secret = "******************"; var cat = key + ":" + secret; var credentials = btoa(cat); // 这行就是你要的Base64转换结果
一些注意事项:
- Twitter的应用密钥(API Key和API Secret)本身是URL安全的ASCII字符串,所以直接用
btoa()完全没问题,不会出现编码异常。 - 后续你请求Twitter的Bearer Token接口时,需要在请求头里带上这个Base64字符串,格式是:
Authorization: Basic ${credentials} - 万一你遇到特殊字符编码问题(虽然这种情况在Twitter密钥里几乎不会出现),可以先对key和secret分别做
encodeURIComponent处理,再拼接转换:var encodedKey = encodeURIComponent(key); var encodedSecret = encodeURIComponent(secret); var cat = encodedKey + ":" + encodedSecret; var credentials = btoa(unescape(encodeURIComponent(cat)));
内容的提问来源于stack exchange,提问作者Santhosh
相关产品推荐
相关产品推荐

