module Riddl::Utils::OAuth2::Helper
Public Class Methods
Source
# File lib/ruby/riddl/utils/oauth2-helper.rb, line 132 def self::access_payload(client_id, dur) #{{{ { :iss => client_id, :sub => nonce, :aud => client_id, :exp => Time.now.to_i + dur }.to_json end
Source
# File lib/ruby/riddl/utils/oauth2-helper.rb, line 157 def self::generate_access_token(client_id, secret, dur)# {{{ h = Base64::urlsafe_encode64 header p = Base64::urlsafe_encode64 access_payload(client_id,dur) s = sign(secret, "#{h}.#{p}") "#{h}.#{p}.#{s}" end
Source
# File lib/ruby/riddl/utils/oauth2-helper.rb, line 168 def self::generate_optimistic_token(client_id, secret, adur, rdur) #{{{ t = generate_access_token(client_id, secret, adur) r = generate_refresh_token(client_id, secret, rdur) [t, r] end
Source
# File lib/ruby/riddl/utils/oauth2-helper.rb, line 163 def self::generate_refresh_token(client_id, secret, dur) # {{{ p = Base64::urlsafe_encode64 refresh_payload(client_id,dur) s = sign(secret, p) "#{p}.#{s}" end
Source
# File lib/ruby/riddl/utils/oauth2-helper.rb, line 125 def self::header #{{{ { :alg => 'HS256', :typ => 'JWT' }.to_json end
Source
# File lib/ruby/riddl/utils/oauth2-helper.rb, line 149 def self::nonce #{{{ SecureRandom::hex(32) end
Source
# File lib/ruby/riddl/utils/oauth2-helper.rb, line 141 def self::refresh_payload(client_id, dur) #{{{ { :iss => client_id, :sub => nonce, :exp => Time.now.to_i + dur }.to_json end
Source
# File lib/ruby/riddl/utils/oauth2-helper.rb, line 153 def self::sign(secret, what) #{{{ Base64::urlsafe_encode64 OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), secret, what) end