# User - Initialization & Authentication

.sc-doc-table table { table-layout: auto; width: 100%; }
table th, table td { word-break: keep-all; overflow-wrap: normal; padding: 8px 14px; vertical-align: top; }
table th:first-child, table td:first-child { white-space: nowrap; }
table td code, table th code { white-space: nowrap; }
Bootstrap a client-side session by exchanging a server-issued **preauth token** for a user access token.
**Authentication.** `GET /users/preauth-token/{preauthToken}` accepts a preauth token (no user token yet); the response returns a user access token used for all other `/users/*` endpoints.
**Preauth token lifetime.** Single-use, **30-second** lifetime. Issued by `GET /direct/preauth-token/{id}` from your backend and exchanged here immediately.

 - [GET /users/preauth-token/{preauthToken}](https://crsintegration.redocly.app/client-spec/user-initialization-and-authentication/exchangepreauthtoken.md): Exchanges a pre-auth `{preauthToken}` for a full user session. This is how to obtain the `userToken` used for all `/users/*` endpoints. Returns the user profile along with JWT access and refresh token
 - [GET /users](https://crsintegration.redocly.app/client-spec/user-initialization-and-authentication/getuser.md): Returns the full profile for the currently authenticated user including enrollment status, notification preferences, and feature flags.
