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
 | 
						|
 | 
						|
 |