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

Check against given params and return the corresponding client

# `authorize`

```elixir
@spec authorize(
  [id: String.t(), source: map(), grant_type: String.t()]
  | [
      id: String.t(),
      source: map() | nil,
      redirect_uri: String.t(),
      grant_type: String.t()
    ]
  | [
      id: String.t(),
      source: map() | nil,
      redirect_uri: String.t(),
      grant_type: String.t(),
      code_verifier: String.t()
    ]
) ::
  {:ok, Backplane.Oauth.Client.t()}
  | {:error,
     %Backplane.Oauth.Error{
       error: :invalid_client,
       error_description: String.t(),
       format: nil,
       redirect_uri: nil,
       state: term(),
       status: :unauthorized
     }}
  | {:error,
     %Backplane.Oauth.Error{
       error: :unsupported_grant_type,
       error_description: String.t(),
       format: nil,
       redirect_uri: nil,
       state: term(),
       status: :bad_request
     }}
```

Authorize the client corresponding to the given params.

## Examples
    iex> authorize(id: "id", secret: "secret")
    {:ok, %Backplane.Oauth.Client{...}}

---

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