使用base64编码生成Oauth授权令牌

使用base64编码生成Oauth授权令牌,oauth,base64,encode,Oauth,Base64,Encode,我试图按照指南为YAHOO DSP API生成Oauth身份验证令牌 Base64编码是一种将二进制数据编码为文本的方法,因此可以轻松地在网络上传输而不会出错 在此步骤中,您将获取YDN控制台为您生成的客户端ID和客户端密码,并使用base64协议对其进行编码。您可以使用在线编码服务,如base64encode.org 无论您使用哪种服务,请确保客户机标识和客户机密钥没有空格,并用冒号分隔客户机标识和客户机密钥,即客户机标识:客户机密钥 在本指南中,生成的值现在将被引用为编码(CLIENT\u

我试图按照指南为YAHOO DSP API生成Oauth身份验证令牌

Base64编码是一种将二进制数据编码为文本的方法,因此可以轻松地在网络上传输而不会出错

在此步骤中,您将获取YDN控制台为您生成的客户端ID和客户端密码,并使用base64协议对其进行编码。您可以使用在线编码服务,如base64encode.org

无论您使用哪种服务,请确保客户机标识和客户机密钥没有空格,并用冒号分隔客户机标识和客户机密钥,即客户机标识:客户机密钥

在本指南中,生成的值现在将被引用为编码(CLIENT\u ID:CLIENT\u SECRET)

举例如下:

客户ID=DJ0YJMK9N2PIAZLSZK1IZIXJMQ9WVDrowveumpVMFPWTXPRBWNHBZLNQS0TJNM9Y29UC3VTZXJZZZZWNYZXQMED00NA-

客户机密=a7e13ea3740b933496d88755ff341bfb824805a6

授权=ZGOWEUPTAZLOMNBJYXPSC1PRMWLUEKL4SM1ROVDWZHJPV1ZFWW1WVK1GCFDUWHBSYLDOSGJ6BE5RUZB0SM5NOVKYOXVJM1Z0WLHKELPXTNLAWFFTZUQWME5BLS06YTDLMTNLYTM3NDBIOTMZNDK2ZDG4NZU1ZMYZNDFIZMI4M4MDVHNG==

使用推荐的网站,我得到了错误的授权

我尝试过同时对整个内容进行编码,即encode(CLIENT\u ID:CLIENT\u SECRET),以及每个元素单独编码(CLIENT\u ID):encode(CLIENT\u SECRET)

尝试对整个事件进行编码: ZGOWEUPTAZLOMNBJYXPSC1PRMWLUEKL4SM1ROVDWZHJPV1ZFWW1WVK1GCFDUHBSYLDOSGJ6BE5RUZB0SM5NOVKYOXVJM1Z0WLHKELPXTNLAWFFTZUQWME5B4OCTOIBHN2UXM2VHMZC0MGI5MZM0OTZKOD3NTVMZJM0MWJMYJGYNGWNW2

尝试对每个元素进行编码: ZGOWEUPTAZLOMNBJYXPSC1PRMWLUEKL4SM1ROVDWZHJV1ZFWW1WVK1GCFDUWBSYLDOSGJ6BE5RUZB0SM5NOVKYXVJM1Z0WLHKELPXTNLAWFFTZUQWME5B4OCT:YTDLmtNLYTM3NDBIOTMZNDK2ZDG4NZU1ZMYNDFIZMI4MdVHNG==

预期结果: ZGOWEUPTAZLOMNBJYXPSC1PRMWLUEKL4SM1ROVDWZHJPV1ZFVW1WVK1GCFDUHbSYLDOSGJ6BE5RUZB0SM5NOVKYXVJM1Z0WLHKELPXTNLAWFFTZUQWME5BLS06YTDLMTNLYTM3NDBIOTMZNDK2ZDG4NZU1ZMZMZMZYNDFIZMI4MdVHNG==

“每个元素”与预期结果之间的差异只是与客户端ID结尾和冒号相对应的几个字符。 B4oCT:应为BLS06

指向完整文档的链接:

更新:


客户端ID的最后一个字符是“-”。这是一种非标准字符,在utf-8和windows 1258中被解释为两个破折号,即“--”。

需要注意的是,当您解密预期的输出时,您的客户端id将作为

dj0yJmk9N2pIazlsZk1iTzIxJmQ9WVdrOWVEUmpVMFpWTXpRbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD00NA--
而不是

dj0yJmk9N2pIazlsZk1iTzIxJmQ9WVdrOWVEUmpVMFpWTXpRbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD00NA–
注意,末尾有两个“-”

OAuth客户端身份验证令牌始终使用以下格式的Base64编码生成

Base64_Encoding(CLIENT_ID:CLIENT_SECRET)
大多数用法都使用编码类型为“UTF-8”的Base64编码


看起来,Yahoo需要使用不同编码的令牌。在“”上,如果尝试使用“Windows-1254”作为目标字符集对“客户端ID:CLIENT_SECRET”进行编码,则将收到预期结果。因此,这里的编码和解码似乎都完成了,保持了“Windows-1254”字符集。

感谢您的回复,但当我将Dj0yjmk9n2piazlzzkk1itzixjmq9wvdrowveumpvmfpwtxbrbwnhbzlnqs0tjnm9y29uc3vtzxjzjzwnyzxqmed00na–:a7e13ea3740b933496d88755ff341bb824805a6输入到目标字符集设置为Windows-1254的网站时,我得到Zgoweuptazlomnbjyxpscc1prmwluekl4sm1rovdwzhjpv1zfvw1wvk1gcfduwhbsyldosgj6be5ruzb0sm5novkyoxvjm1z0wlhkelpxtnlawfftzuqwme5bljphn2uxm2vhzzzmzc0mgi5motzkod3ntvmzmzmzmwjmwjmyjgyndgwnwe2,而不是正确的。正如我在前面的评论中提到的,请检查您的客户ID,它有两个破折号“-”,而不是一个“-”。一旦您将客户机ID更改为有两个“-”,您将得到预期的结果。