33 lines
824 B
Ruby
33 lines
824 B
Ruby
|
require 'openssl'
|
||
|
require 'jwt' # https://rubygems.org/gems/jwt
|
||
|
|
||
|
# Private key contents
|
||
|
private_pem = File.read("/Users/xxq/Documents/gitlink-webhook.2022-06-09.private-key.pem")
|
||
|
private_key = OpenSSL::PKey::RSA.new(private_pem)
|
||
|
|
||
|
# Generate the JWT
|
||
|
payload = {
|
||
|
# issued at time, 60 seconds in the past to allow for clock drift
|
||
|
iat: Time.now.to_i - 60,
|
||
|
# JWT expiration time (10 minute maximum)
|
||
|
exp: Time.now.to_i + (10 * 60),
|
||
|
# GitHub App's identifier
|
||
|
iss: "209248"
|
||
|
}
|
||
|
|
||
|
jwt = JWT.encode(payload, private_key, "RS256")
|
||
|
puts jwt
|
||
|
# puts OpenSSL::PKey::RSA.new(private_key33).public_key.to_s
|
||
|
#
|
||
|
# rsa_private = OpenSSL::PKey::RSA.new(private_key33)
|
||
|
# rsa_public = rsa_private.public_key
|
||
|
#
|
||
|
#
|
||
|
|
||
|
# puts decoded_token[0]
|
||
|
# puts decoded_token[0]["iss"]
|
||
|
|
||
|
# serialized_private_key = OpenSSL::PKey::RSA::generate(2048).to_s
|
||
|
|
||
|
|