Class: Safire::PKCE
- Inherits:
-
Object
- Object
- Safire::PKCE
- Defined in:
- lib/safire/pkce.rb
Overview
PKCE (Proof Key for Code Exchange) implementation This class generates a code verifier and corresponding code challenge for use in OAuth2 authorization flows. It supports the S256 code challenge method.
Class Method Summary collapse
-
.generate_code_challenge(code_verifier) ⇒ String
Generates a code challenge from the given code verifier using SHA256 and base64url encoding.
- .generate_code_verifier ⇒ Object
Class Method Details
.generate_code_challenge(code_verifier) ⇒ String
Generates a code challenge from the given code verifier using SHA256 and base64url encoding
17 18 19 20 21 22 |
# File 'lib/safire/pkce.rb', line 17 def generate_code_challenge(code_verifier) validate_verifier(code_verifier) digest = Digest::SHA256.digest(code_verifier) Base64.urlsafe_encode64(digest).tr('=', '') end |
.generate_code_verifier ⇒ Object
8 9 10 11 |
# File 'lib/safire/pkce.rb', line 8 def generate_code_verifier # Using 96 bytes will produce a 128-character URL-safe base64 string which is the max length allowed SecureRandom.urlsafe_base64(96).tr('=', '') end |