Module: Shakha::PKCEMixin

Extended by:
ActiveSupport::Concern
Included in:
AuthController
Defined in:
lib/shakha/pkce.rb

Constant Summary collapse

CODE_VERIFIER_LENGTH =
64
CODE_CHALLENGE_METHOD =
"S256"
"shakha_pkce"
600

Class Method Summary collapse

Class Method Details

.generate_code_challenge(verifier) ⇒ Object



22
23
24
25
26
27
# File 'lib/shakha/pkce.rb', line 22

def generate_code_challenge(verifier)
  Base64.urlsafe_encode64(
    OpenSSL::Digest::SHA256.digest(verifier),
    padding: false
  )
end

.generate_code_verifierObject



16
17
18
19
20
# File 'lib/shakha/pkce.rb', line 16

def generate_code_verifier
  SecureRandom.urlsafe_base64(CODE_VERIFIER_LENGTH)
    .tr("-_", "+/")
    .slice(0, CODE_VERIFIER_LENGTH)
end