Boundary for OAuth control-plane request shaping and token normalization.
Summary
Types
@type grant_type() ::
:authorization_code | :refresh_token | :client_credentials | :password
@type request_kind() :: {:token, grant_type()} | :revoke | :introspect
Callbacks
@callback authorization_url(Pristine.OAuth2.Provider.t(), keyword()) :: {:ok, String.t()} | {:error, term()}
@callback available?() :: boolean()
@callback build_request( Pristine.OAuth2.Provider.t(), request_kind(), map() | keyword(), keyword() ) :: {:ok, Pristine.Ports.OAuthBackend.Request.t()} | {:error, term()}
@callback normalize_token_response(Pristine.OAuth2.Provider.t(), map() | String.t()) :: {:ok, Pristine.OAuth2.Token.t()} | {:error, term()}