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"

Class Method Summary collapse

Class Method Details

.generate_code_challenge(verifier) ⇒ Object



19
20
21
22
23
24
# File 'lib/shakha/pkce.rb', line 19

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

.generate_code_verifierObject



13
14
15
16
17
# File 'lib/shakha/pkce.rb', line 13

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