WorkOS.PKCE (WorkOS SDK for Elixir v3.0.1)

Copy Markdown View Source

PKCE (Proof Key for Code Exchange, RFC 7636) utilities for public-client authentication flows.

pair = WorkOS.PKCE.generate_pair()
pair.code_verifier
pair.code_challenge
pair.code_challenge_method
#=> "S256"

Summary

Types

A PKCE code verifier/challenge pair. The challenge method is always "S256".

Functions

Computes the S256 code challenge for a code verifier.

Generates a cryptographically random PKCE code verifier.

Generates a complete PKCE pair (verifier + S256 challenge).

Types

pair()

@type pair() :: %{
  code_verifier: String.t(),
  code_challenge: String.t(),
  code_challenge_method: String.t()
}

A PKCE code verifier/challenge pair. The challenge method is always "S256".

Functions

generate_code_challenge(code_verifier)

@spec generate_code_challenge(String.t()) :: String.t()

Computes the S256 code challenge for a code verifier.

generate_code_verifier(length \\ 43)

@spec generate_code_verifier(pos_integer()) :: String.t()

Generates a cryptographically random PKCE code verifier.

length must be between 43 and 128 characters (default 43), per RFC 7636.

generate_pair()

@spec generate_pair() :: pair()

Generates a complete PKCE pair (verifier + S256 challenge).