Auth Repository
API Contract
REST
/api/v1/sessions
5 endpoints
GET
/api/v1/sessions/api/v1/sessions
List all persisted sessions for the current user with pagination.
Public
Response Example
{
"data": [
{
"id": "sess_9f2a3b4c5d6e7f8a",
"user_id": "user_1a2b3c4d-e5f6-7890-abcd-ef1234567890",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzFhMmIzYzRkIiwiZXhwIjoxNzQzMDIwNjAwfQ.mK9pQ2rS1tU3vW4xY5zA6bC7dE8fG9h",
"token_type": "Bearer",
"expires_at": "2026-03-26T18:30:00.000Z",
"is_valid": true,
"created_at": "2026-03-26T14:22:40.000Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1
}
}
GET
/api/v1/sessions/api/v1/sessions/:id
Load a specific session by ID (loadSession). Includes token details and validity status.
Public
Response Example
{
"id": "sess_9f2a3b4c5d6e7f8a",
"user_id": "user_1a2b3c4d-e5f6-7890-abcd-ef1234567890",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzFhMmIzYzRkIiwiZXhwIjoxNzQzMDIwNjAwfQ.mK9pQ2rS1tU3vW4xY5zA6bC7dE8fG9h",
"refresh_token": "v1.Mfqd8QJK3xnR2pL7sT9wZ0cE5aB6yN4hP1qD",
"token_type": "Bearer",
"expires_at": "2026-03-26T18:30:00.000Z",
"is_valid": true,
"user": {
"id": "user_1a2b3c4d-e5f6-7890-abcd-ef1234567890",
"email": "john.doe@example.com",
"email_confirmed_at": "2026-01-15T10:00:00.000Z"
},
"created_at": "2026-03-26T14:22:40.000Z"
}
POST
/api/v1/sessions/api/v1/sessions
Persist a new session to the repository (saveSession). Called after successful sign-in.
Public
Request Example
{
"user_id": "user_1a2b3c4d-e5f6-7890-abcd-ef1234567890",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzFhMmIzYzRkIiwiZXhwIjoxNzQzMDIwNjAwfQ.mK9pQ2rS1tU3vW4xY5zA6bC7dE8fG9h",
"refresh_token": "v1.Mfqd8QJK3xnR2pL7sT9wZ0cE5aB6yN4hP1qD",
"token_type": "Bearer",
"expires_at": "2026-03-26T18:30:00.000Z",
"user": {
"id": "user_1a2b3c4d-e5f6-7890-abcd-ef1234567890",
"email": "john.doe@example.com",
"email_confirmed_at": "2026-01-15T10:00:00.000Z",
"created_at": "2026-01-15T09:55:00.000Z"
}
}
Response Example
{
"id": "sess_9f2a3b4c5d6e7f8a",
"user_id": "user_1a2b3c4d-e5f6-7890-abcd-ef1234567890",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzFhMmIzYzRkIiwiZXhwIjoxNzQzMDIwNjAwfQ.mK9pQ2rS1tU3vW4xY5zA6bC7dE8fG9h",
"refresh_token": "v1.Mfqd8QJK3xnR2pL7sT9wZ0cE5aB6yN4hP1qD",
"token_type": "Bearer",
"expires_at": "2026-03-26T18:30:00.000Z",
"is_valid": true,
"user": {
"id": "user_1a2b3c4d-e5f6-7890-abcd-ef1234567890",
"email": "john.doe@example.com"
},
"created_at": "2026-03-26T14:22:40.000Z"
}
PUT
/api/v1/sessions/api/v1/sessions/:id
Update a stored session (e.g. after token refresh — update access_token and expires_at).
Public
Request Example
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzFhMmIzYzRkIiwiZXhwIjoxNzQzMDI0MjAwfQ.nL0qR3sT2uV4wX5yZ6aB7cD8eF9gH0iJ",
"refresh_token": "v1.Ngrp9RLM4yoS3qM8tU0xA1dF6bC7zO5iQ2rE",
"expires_at": "2026-03-26T19:30:00.000Z"
}
Response Example
{
"id": "sess_9f2a3b4c5d6e7f8a",
"user_id": "user_1a2b3c4d-e5f6-7890-abcd-ef1234567890",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzFhMmIzYzRkIiwiZXhwIjoxNzQzMDI0MjAwfQ.nL0qR3sT2uV4wX5yZ6aB7cD8eF9gH0iJ",
"refresh_token": "v1.Ngrp9RLM4yoS3qM8tU0xA1dF6bC7zO5iQ2rE",
"token_type": "Bearer",
"expires_at": "2026-03-26T19:30:00.000Z",
"is_valid": true,
"updated_at": "2026-03-26T15:30:00.000Z"
}
DELETE
/api/v1/sessions/api/v1/sessions/:id
Clear a persisted session by ID (clearSession). Removes from secure local storage.
Public
Response Example
{
"deleted": true,
"id": "sess_9f2a3b4c5d6e7f8a"
}