class PkceChallenge::Challenge
Constants
- CHAR_LENGTH
constants definition
Attributes
code_challenge[RW]
code_verifier[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/pkce_challenge/challenge.rb, line 10 def initialize(options = {}) @options = options @code_verifier = generate_code_verifier @code_challenge = generate_pkce_challenge end
Private Instance Methods
generate_code_verifier()
click to toggle source
# File lib/pkce_challenge/challenge.rb, line 26 def generate_code_verifier length = (@options[:char_length] || CHAR_LENGTH[:default]).to_i unless length.between?(CHAR_LENGTH[:min], CHAR_LENGTH[:max]) raise PkceChallenge::LengthOutOfRangeError end urlsafe_base64(SecureRandom.base64((length * 3) / 4)) end
generate_pkce_challenge()
click to toggle source
# File lib/pkce_challenge/challenge.rb, line 36 def generate_pkce_challenge urlsafe_base64(Digest::SHA256.base64digest(@code_verifier)) end
urlsafe_base64(base64_str)
click to toggle source
# File lib/pkce_challenge/challenge.rb, line 40 def urlsafe_base64(base64_str) base64_str.tr("+/", "-_").tr("=", "") end