# `AttestoPhoenix.ClientAuthentication.Result`
[🔗](https://github.com/XukuLLC/attesto_phoenix/blob/v0.19.0/lib/attesto_phoenix/client_authentication.ex#L111)

The authenticated client and how it authenticated.

`:client` is the opaque host client value returned by `:load_client`,
`:client_id` is the OAuth identifier (RFC 6749 §2.2) - the host's
`:client_id` callback when configured, otherwise the identifier the
credentials carried (the Basic/body `client_id` or the assertion `sub`), so
it is never `nil` for a successful authentication - and `:method` is the
RFC 6749 §2.3 / OIDC Core §9 authentication method
(`:client_secret_basic`, `:client_secret_post`, `:private_key_jwt`, or
`:none` for the public-client path).

# `method`

```elixir
@type method() ::
  :client_secret_basic | :client_secret_post | :private_key_jwt | :none
```

# `t`

```elixir
@type t() :: %AttestoPhoenix.ClientAuthentication.Result{
  client: term(),
  client_id: String.t() | nil,
  method: method()
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
