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

问题描述 投票:0回答:1

我正在尝试按照指南为YAHOO DSP API生成Oauth身份验证令牌。

Base64编码是一种将二进制数据编码为文本的方法,因此可以轻松地通过网络传输而无错误。

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

无论您使用哪种服务,请确保CLIENT_ID和CLIENT_SECRET键没有附加空格,并使用冒号(即CLIENT_ID:CLIENT_SECRET)将CLIENT_ID和CLIENT_SECRET分开。

现在,生成的值将在本指南中作为ENCODED(CLIENT_ID:CLIENT_SECRET)引用。

给出了一个例子:

CLIENT_ID = dj0yJmk9N2pIazlsZk1iTzIxJmQ9WVdrOWVEUmpVMFpWTXpRbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD00NA-

CLIENT_SECRET = a7e13ea3740b933496d88755ff341bfb824805a6

授权= ZGoweUptazlOMnBJYXpsc1prMWlUekl4Sm1ROVdWZHJPV1ZFVW1wVk1GcFdUWHBSYldOSGJ6bE5RUzB0Sm5NOVkyOXVjM1Z0WlhKelpXTnlaWFFtZUQwME5BLS06YTdlMTNlYTM3NDBiOTMzNDk2ZDg4NzU1ZmYzNDFiZmI4MjQ4MDVhNg ==

使用推荐的网站我得到了错误的AUTHORIZATION。

我试过一次编码整个东西,即。编码(CLIENT_ID:CLIENT_SECRET),每个元素单独编码(CLIENT_ID):encode(CLIENT_SECRET)。

尝试编码整个事情:ZGoweUptazlOMnBJYXpsc1prMWlUekl4Sm1ROVdWZHJPV1ZFVW1wVk1GcFdUWHBSYldOSGJ6bE5RUzB0Sm5NOVkyOXVjM1Z0WlhKelpXTnlaWFFtZUQwME5B4oCTOiBhN2UxM2VhMzc0MGI5MzM0OTZkODg3NTVmZjM0MWJmYjgyNDgwNWE2

尝试编码每个元素:ZGoweUptazlOMnBJYXpsc1prMWlUekl4Sm1ROVdWZHJPV1ZFVW1wVk1GcFdUWHBSYldOSGJ6bE5RUzB0Sm5NOVkyOXVjM1Z0WlhKelpXTnlaWFFtZUQwME5B4oCT:YTdlMTNlYTM3NDBiOTMzNDk2ZDg4NzU1ZmYzNDFiZmI4MjQ4MDVhNg ==

预期结果:ZGoweUptazlOMnBJYXpsc1prMWlUekl4Sm1ROVdWZHJPV1ZFVW1wVk1GcFdUWHBSYldOSGJ6bE5RUzB0Sm5NOVkyOXVjM1Z0WlhKelpXTnlaWFFtZUQwME5BLS06YTdlMTNlYTM3NDBiOTMzNDk2ZDg4NzU1ZmYzNDFiZmI4MjQ4MDVhNg ==

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

完整文档的链接:https://developer.yahoo.com/dsp/api/docs/authentication/tokens.html https://developer.yahoo.com/dsp/api/docs/traffic/info/sandbox.html

更新:

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

oauth base64 encode
1个回答
0
投票

一个不同的,TO NOTE是,当您解密预期输出时,您将获得您的客户端ID为

dj0yJmk9N2pIazlsZk1iTzIxJmQ9WVdrOWVEUmpVMFpWTXpRbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD00NA--

代替

dj0yJmk9N2pIazlsZk1iTzIxJmQ9WVdrOWVEUmpVMFpWTXpRbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD00NA–

注意,最后有两个“ - ”。

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

Base64_Encoding(CLIENT_ID:CLIENT_SECRET)

大多数用法执行此Base64编码,编码类型为“UTF-8”。

看起来,雅虎要求这个令牌具有不同的编码。在“https://www.base64encode.org/”上如果您尝试将“CLIENT_ID:CLIENT_SECRET”编码为“Windows-1254”作为目标字符集,您将收到预期的结果。因此,看起来这里的编码和解码都是在保持“Windows-1254”字符集的情况下完成的。

© www.soinside.com 2019 - 2024. All rights reserved.