【发布时间】:2017-07-04 12:21:10
【问题描述】:
我需要与 GitHub 集成 API 交互,但特别是来自 .NET 4.0,所以我不能使用 Octokit。
基本上,我得到了一个PEM 格式的私有 rsa 密钥(标准 .NET API 不支持),并且必须发送一个 RS256 jwt 令牌来获取一个身份验证令牌以与 API 交互。
提供了以下 ruby 示例代码:
# Private key contents
private_pem = File.read(path_to_pem)
private_key = OpenSSL::PKey::RSA.new(private_pem)
# Generate the JWT
payload = {
# issued at time
iat: Time.now.to_i,
# JWT expiration time
exp: 1.minute.from_now.to_i,
# Integration's GitHub identifier
iss: 42
}
jwt = JWT.encode(payload, private_key, "RS256")
使用以下 curl 示例
curl -i -X POST \
-H "Authorization: Bearer $JWT" \
-H "Accept: application/vnd.github.machine-man-preview+json" \
https://api.github.com/installations/:installation_id/access_tokens
还有以下 Result 示例:
Status: 201 Created
{
"token": "v1.1f699f1069f60xxx",
"expires_at": "2016-07-11T22:14:10Z",
"on_behalf_of": null
}
【问题讨论】:
标签: .net-4.0 rsa jwt github-api pem