# `Backplane.Oauth.Client`
[🔗](https://github.com/gsmlg-opt/backplane/blob/v1.10.77/apps/backplane_oauth/lib/backplane/oauth/schemas/client.ex#L1)

OAuth client schema and utilities

# `t`

```elixir
@type t() :: %Backplane.Oauth.Client{
  access_token_ttl: integer(),
  authorization_code_ttl: integer(),
  authorize_scope: boolean(),
  authorized_scopes: [Backplane.Oauth.Scope.t()],
  confidential: boolean(),
  id: any(),
  id_token_kid: String.t() | nil,
  id_token_signature_alg: String.t(),
  id_token_ttl: integer(),
  jwks_uri: String.t() | nil,
  jwt_public_key: String.t(),
  logo_uri: String.t() | nil,
  metadata: map(),
  name: String.t(),
  pkce: boolean(),
  private_key: String.t(),
  public_key: String.t(),
  public_refresh_token: boolean(),
  public_revoke: boolean(),
  redirect_uris: [String.t()],
  refresh_token_ttl: integer(),
  secret: String.t(),
  supported_grant_types: [String.t()],
  token_endpoint_auth_methods: [String.t()],
  token_endpoint_jwt_auth_alg: String.t(),
  trusted_authorities: String.t() | nil,
  trusted_hosts: [String.t()] | nil,
  userinfo_signed_response_alg: String.t() | nil
}
```

# `check_redirect_uri`

```elixir
@spec check_redirect_uri(client :: t(), redirect_uri :: String.t()) ::
  :ok | {:error, String.t()}
```

# `check_secret`

```elixir
@spec check_secret(client :: t(), secret :: String.t()) :: :ok | {:error, String.t()}
```

# `grant_type_supported?`

```elixir
@spec grant_type_supported?(client :: t(), grant_type :: String.t()) :: boolean()
```

# `grant_types`

```elixir
@spec grant_types() :: grant_types :: [String.t()]
```

Returns grant types supported by the server. `Backplane.Oauth.Client` `supported_grant_types` attribute may be a subset of them.

# `public_refresh_token?`

```elixir
@spec public_refresh_token?(client :: t()) :: boolean()
```

# `public_revoke?`

```elixir
@spec public_revoke?(client :: t()) :: boolean()
```

# `should_check_secret?`

```elixir
@spec should_check_secret?(client :: t(), grant_type :: String.t()) :: boolean()
```

---

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