0
我需要与GitHub集成API进行交互,但是特别是从.NET 4.0开始,因此我无法使用Octokit。用.NET 5.0中的PEM私钥签名带RS256的JWT令牌
基本上我得到了一个PEM
格式的私有rsa密钥(不受标准.NET API支持),并且必须发送一个RS256 jwt令牌来获得一个auth令牌来与API交互。
下面红宝石样品码提供:
# 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 -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
和以下结果例子:
Status: 201 Created
{
"token": "v1.1f699f1069f60xxx",
"expires_at": "2016-07-11T22:14:10Z",
"on_behalf_of": null
}