# `Charon.Models.Session`
[🔗](https://github.com/weareyipyip/charon/blob/v4.3.0/lib/charon/models/session.ex#L1)

A session.

# `t`

```elixir
@type t() :: %Charon.Models.Session{
  created_at: integer(),
  expires_at: integer() | :infinite,
  extra_payload: map(),
  id: String.t(),
  lock_version: integer(),
  prev_tokens_fresh_from: integer(),
  refresh_expires_at: integer(),
  refresh_token_id: binary(),
  refreshed_at: integer(),
  tokens_fresh_from: integer(),
  type: atom(),
  user_id: pos_integer() | binary(),
  version: pos_integer()
}
```

# `upgrade_version`

```elixir
@spec upgrade_version(map(), Charon.Config.t()) :: map()
```

Upgrade a session (or map created from a session struct) to the latest struct version (7).

---

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