如何取回 Twitch API 不记名令牌
How to retrieve the Twitch API bearer token
我不确定如何总结这个问题,除了一些我曾经搜索过的最被动的攻击性或无能为力的文档(我已经看到并写下了我的公平分享!),尤其是来自一家子公司的表面上是财富 5 强公司
无论如何:作为一个有抱负的 Twitch API 用户,我想执行 Twitch API 资源(user/channel 资源等)的一般服务器端请求,我需要提供Authorization
header.
中的不记名令牌
好的,你觉得很简单吗?哦,甜蜜的夏天 child,Twitch 文档中有关于 four different authorization flows 的非常详细的部分,您可以冒险尝试获得这个神秘而难以检索的令牌(这实际上就像任何其他 [=35 中的第一步) =])
这些流程中的每一个都有相当好的逐步枚举,以及您需要如何首先确保您注册了一个 twitch 应用程序,并且该应用程序的 Client-Id 和客户端 Secret 可用。
在那一步之后,最接近的是下载 Twitch CLI,调用 twitch token
命令,然后传入您的 Client-Id 和客户端密码以获得可以传递的过期访问令牌作为承载者,但如果:
- twitch CLI 无法安装在我的机器上?
- 我不想安装 twitch CLI?
- 我需要以编程方式生成一个新的访问令牌(就像 API 的全部要点???)而不 bash 编写 CLI 脚本?
tl;dr,这花了我太多时间,所以我与你分享,因为花了这么长时间太荒谬了:
POST https://id.twitch.tv/oauth2/token?grant_type=client_credentials
Headers
"Content-Type":"application/x-www-form-urlencoded"
表格body:(在Insomnia或Postman中选择'form'选项)
client_id <your app's client id>
client_secret <your app's client secret>
redirect_uri <your app's redirect uri (localhost is fine!)>
code <your app's client secret (yes, again)
对我有用的帖子,返回了这个 200 OK 和 JSON 响应:
{
"access_token": "<relevant access token>",
"expires_in": 5046783,
"token_type": "bearer"
}
虽然 Twitch 文档自由地共享许多其他端点,但出于某种原因我只能推测,它们没有明确共享端点并明确共享用于检索端点以生成 Twitch API 不记名令牌的端点。
幸运的是,他们 分享了他们的 Twitch CLI's code on Github,我们可以进一步调查。
在此代码库中,我们可以看到多个 url 分配给变量并在 cmd
go 文件中的嵌套 if
语句中调用。
在回购和一些流畅的大脑键盘攻击之后,我得到了我正在寻找的结果。
我希望你觉得这很有用,请不要在你的公司写这样的文档!
我不确定如何总结这个问题,除了一些我曾经搜索过的最被动的攻击性或无能为力的文档(我已经看到并写下了我的公平分享!),尤其是来自一家子公司的表面上是财富 5 强公司
无论如何:作为一个有抱负的 Twitch API 用户,我想执行 Twitch API 资源(user/channel 资源等)的一般服务器端请求,我需要提供Authorization
header.
好的,你觉得很简单吗?哦,甜蜜的夏天 child,Twitch 文档中有关于 four different authorization flows 的非常详细的部分,您可以冒险尝试获得这个神秘而难以检索的令牌(这实际上就像任何其他 [=35 中的第一步) =])
这些流程中的每一个都有相当好的逐步枚举,以及您需要如何首先确保您注册了一个 twitch 应用程序,并且该应用程序的 Client-Id 和客户端 Secret 可用。
在那一步之后,最接近的是下载 Twitch CLI,调用 twitch token
命令,然后传入您的 Client-Id 和客户端密码以获得可以传递的过期访问令牌作为承载者,但如果:
- twitch CLI 无法安装在我的机器上?
- 我不想安装 twitch CLI?
- 我需要以编程方式生成一个新的访问令牌(就像 API 的全部要点???)而不 bash 编写 CLI 脚本?
tl;dr,这花了我太多时间,所以我与你分享,因为花了这么长时间太荒谬了:
POST https://id.twitch.tv/oauth2/token?grant_type=client_credentials
Headers
"Content-Type":"application/x-www-form-urlencoded"
表格body:(在Insomnia或Postman中选择'form'选项)
client_id <your app's client id>
client_secret <your app's client secret>
redirect_uri <your app's redirect uri (localhost is fine!)>
code <your app's client secret (yes, again)
对我有用的帖子,返回了这个 200 OK 和 JSON 响应:
{
"access_token": "<relevant access token>",
"expires_in": 5046783,
"token_type": "bearer"
}
虽然 Twitch 文档自由地共享许多其他端点,但出于某种原因我只能推测,它们没有明确共享端点并明确共享用于检索端点以生成 Twitch API 不记名令牌的端点。
幸运的是,他们 分享了他们的 Twitch CLI's code on Github,我们可以进一步调查。
在此代码库中,我们可以看到多个 url 分配给变量并在 cmd
go 文件中的嵌套 if
语句中调用。
在回购和一些流畅的大脑键盘攻击之后,我得到了我正在寻找的结果。
我希望你觉得这很有用,请不要在你的公司写这样的文档!