# `Latch.Session`

An established atproto OAuth session: the credentials and binding needed to
make authenticated PDS requests and to refresh the access token.

The `dpop_key` is the per-session private key every request is signed with.
The access and refresh tokens are bound to it. `issuer` identifies the
authorization server (for refresh and re-discovery), `pds_endpoint` is where
authenticated XRPC calls go.

# `t`

```elixir
@type t() :: %Latch.Session{
  access_token: String.t(),
  did: String.t(),
  dpop_key: map(),
  expires_at: DateTime.t(),
  issuer: String.t(),
  pds_endpoint: String.t(),
  refresh_token: String.t(),
  scope: String.t()
}
```

---

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