# `Macaw.Auth.Session`
[🔗](https://github.com/dcoai/macaw_auth/blob/v0.4.1/lib/macaw/auth/session.ex#L1)

One signed-in session, as every backend reports it.

The client holds only the session's token; the backend stores no more
than a hash of it. An open LiveView holds the session's `id`, never its
token, and re-checks it by id.

`second_factor_passed` is false between a password and a second factor;
`completed_steps` lists the steps the session has finished
(`Macaw.Auth.pending_step/2`).

# `t`

```elixir
@type t() :: %Macaw.Auth.Session{
  completed_steps: [Macaw.Auth.step()],
  created_at: DateTime.t() | nil,
  id: term(),
  last_used_at: DateTime.t() | nil,
  remote_ip: String.t() | nil,
  second_factor_passed: boolean(),
  user_agent: String.t() | nil,
  user_id: term()
}
```

---

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