当前位置: 首页 > 知识库问答 >
问题:

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

韩智敏
2023-03-14

我试图按照指南为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 = DJ 0 yjmk 9 N2 piazzlszk 1 itzixjmq 9 wvdrowveumvmfpwtxprbwnhbzlnqs 0 jnm 9y 29 UC 3 vtzxjzzwnyzxqmed 00 na-

CLIENT _ SECRET = a 7 e 13 ea 3740 b 933496d 88755 ff 341 bfb 824805 a 6

授权=ZGoweUptazlOMnBJYXpsc1prMWlUekl4Sm1ROVdWZHJPV1ZFVW1wVk1GcFdUWHBSYldOSGJ6bE5RUzB0Sm5NOVkyOXVjM1Z0WlhKelpXTnlaWFFtZUQwME5BLS06YTdlMTNlYTM3NDBiOTMzNDk2ZDg4NzU1ZmYzNDFiZmI4MjQ4MDVhNg==

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

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

尝试编码整个事物: ZGoweUptazlOMNBJYXPSC1PRMWlUek4Sm1ROVDWZHJPV1ZFVW1wVK1GCDUWHBYLDOSGJ6bE5RUzB0Sm5NOKYOXVJM1Z0WHC999944OCTOiBN2UxM2XM2V92V99MZC0MGI5MZM0OTZKODg3NTVMZJM0MWJMYYGYGYNDGWNWE2

尝试编码每个元素: ZGoweUptazlOMNBJYXPSC1prMWlUek4Sm1ZVDVW1WVV1WVK1GcFDUWHBSYLDOSGJ6bE5RUzB0Sm5NOKYOXVJM1Z0W5WKelpXTnlaWFFtZUQWMEME5B4oCT:YTdlMTNLYTM3NDBIOTMZNDK2ZDG4NzU1ZMYZNDFIZmI4MJQ4MDVHNG==

预期结果:zgoweuptazlomnbjyxpsc 1 prmwluekl 4 sm 1 rovdwzhjpv 1 zfvw 1 wvk 1 gcfduwhbsyldosgj 6 be 5 ruz B0 sm 5 novkyoxvjm 1 z 0 wlhkelpxtnlawftzuqwme 5 bls 06 ytdlmtnlytm 3 ndbiotmzndk 2 zdg 4 nzu 1 zmyznfizmi 4 mj 4 MDV hng = =

“每个元素”和预期结果之间的差异只是对应于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中的“--”。

共有1个答案

颜瀚漠
2023-03-14

要注意的一个不同之处是,当您解密预期的输出时,您将获得您的客户端ID为

dj0yJmk9N2pIazlsZk1iTzIxJmQ9WVdrOWVEUmpVMFpWTXpRbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD00NA--

而不是

dj0yJmk9N2pIazlsZk1iTzIxJmQ9WVdrOWVEUmpVMFpWTXpRbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD00NA–

注意,末尾有两个“-”。

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

Base64_Encoding(CLIENT_ID:CLIENT_SECRET)

大多数情况下使用编码类型为“UTF-8”的Base64编码。

看起来,Yahoo需要不同编码的令牌。在“https://www.base64encode.org/”上,如果您尝试使用“Windows-1254”作为目标字符集对“CLIENT_ID:CLIENT_SECRET”进行编码,您将会收到预期的结果。因此,看起来这里的编码和解码都完成了,保持“Windows-1254”字符集不变。

 类似资料:
  • 本文向大家介绍oauth 授权码授予,包括了oauth 授权码授予的使用技巧和注意事项,需要的朋友参考一下 示例 第1步 第2步 资源

  • 我想更好地理解隐式授权流和授权代码授权流之间的区别,因为我不确定我目前的理解是否正确。 隐式授权流主要由前端应用程序用于验证用户身份吗? 隐式授权流是否只需要一个client_id、用户名和密码来进行身份验证,换句话说,永远不会发送client_secret? 授权码只是一个短期令牌吗? 将授权码交换为访问令牌后,客户端可以访问用户帐户多长时间?具体地说,如果客户端是一个长时间运行的脚本,那么用户

  • 我们正在使用Spring引导作为后端,仅为auth和生成jwt令牌的其余部分在hasura中处理。 我面临正确生成JWT的问题。 这是生成jwt令牌作为 但它hasura返回无效的签名。在哪里作为在节点 jwt从节点 使用相同的密钥和算法工作得非常好。对于节点,我使用了jsonwebtoken库。

  • 问题内容: 我试图使用Java中的Apache OAuth Client 2.0 Library自动执行用户级别令牌创建/生成过程(REST /授权授予代码)。以下是我从https://cwiki.apache.org/confluence/display/OLTU/OAuth+2.0+Client+Quickstart获得的正在使用的代码, 但是,我在以下几行中收到了(来自Eclipse中错误的

  • 我正在使用JWT令牌在web api 2中实现授权,我对这个领域是新手。我坚持生成AudienceId和AudienceCret的目的,为什么我需要它们?

  • 1.1.1. 智能家居 OAuth 授权 1.1.1. 智能家居 OAuth 授权 交互过程 用户添加驱动, 发起授权过程 Homebase 向驱动调用 OAuth Command 接口, 参数为登录回调页面地址 HTTP 驱动 OAuth Command 返回 Oauth 登陆地址 OAuth URL Homebase 打开浏览器, 跳转到转到 OAuth URL 用户输入用户名和密码, 点击授