oidc-provider.token-endpoint

Token endpoint implementation for OAuth2/OIDC.

handle-authorization-code-grant

(handle-authorization-code-grant {:keys [code redirect_uri]} client provider-config code-store token-store claims-provider)

Handles authorization_code grant type.

Args: params: Token request parameters client: Authenticated client configuration provider-config: Provider configuration map code-store: AuthorizationCodeStore implementation token-store: TokenStore implementation claims-provider: ClaimsProvider implementation

Returns: Token response map

handle-client-credentials-grant

(handle-client-credentials-grant {:keys [scope]} client provider-config token-store)

Handles client_credentials grant type.

Args: params: Token request parameters client: Authenticated client configuration provider-config: Provider configuration map token-store: TokenStore implementation

Returns: Token response map

handle-refresh-token-grant

(handle-refresh-token-grant {:keys [refresh_token scope]} client provider-config token-store)

Handles refresh_token grant type.

Args: params: Token request parameters client: Authenticated client configuration provider-config: Provider configuration map token-store: TokenStore implementation

Returns: Token response map

handle-token-request

(handle-token-request params authorization-header provider-config client-store code-store token-store claims-provider)

Handles token endpoint requests.

Args: params: Token request parameters (from form body) authorization-header: Authorization header value (for client authentication) provider-config: Provider configuration map client-store: ClientStore implementation code-store: AuthorizationCodeStore implementation token-store: TokenStore implementation claims-provider: ClaimsProvider implementation

Returns: Token response map

Throws: ex-info on validation or processing errors

token-error-response

(token-error-response error error-description & {:keys [status], :or {status 400}})

Creates an OAuth2 error response.

Args: error: Error code (e.g., “invalid_request”, “invalid_client”) error-description: Human-readable error description status: HTTP status code (default 400)

Returns: Map with :status, :headers, and :body

TokenRequest

Malli schema for token request parameters.

TokenResponse

Malli schema for token response.