如何使用 bash 使用客户端 ID 和客户端密钥为 GitHub 应用程序生成 JWT 令牌

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

我创建了一个 GitHub 应用程序并拥有该应用程序的

client-secret
client-id

我希望能够使用这个新应用程序来简单地向 GitHub 进行身份验证。

为此,我需要使用应用程序的

client_id
client_secret
生成 JWT 令牌,然后该令牌将允许我执行以下命令:

curl --request GET \
--url "https://api.github.com/app" \
--header "Accept: application/vnd.github+json" \
--header "Authorization: Bearer YOUR_JWT" \
--header "X-GitHub-Api-Version: 2022-11-28"

问题是,我找不到任何有关如何使用给定的应用程序属性(

client_id
client_secret
)生成此 JWT 令牌的文档。我已经在 GitHub 文档页面上看到了此文档,但它只是展示了如何使用 JTW 令牌,而不是如何生成它。

如何使用 GitHub 应用程序的

client_id
client_secret
创建 JWT 进行身份验证?

jwt github-api github-app
1个回答
0
投票

生成 JSON Web 令牌中显示的示例是您正在寻找的代码格式的文档。

JWT 是使用私钥签名的 json 字符串,并以 Base64 格式编码,以便于传递。任何拥有公钥的人都可以验证它的真实性。

对于 Github 应用程序,您需要使用应用程序的私钥对 json 字符串进行签名,Github 将使用它已有的公钥来验证您是 JWT 的发行者。

client_id
client_secret
不用于创建 JWT,也不用于访问 API 或存储库数据;只有私钥是。

查看我的答案如何使用带有 OAuth 的 GitHub 应用程序访问私有存储库?了解如何作为应用程序向 Github 进行身份验证,该应用程序使用 JWT 获取临时安装访问令牌,这是访问 API 所需的内容一个应用程序,以及安装中的存储库

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