Login

POST /api/v1/auth/login

Rate limit: 5 requests per minute per IP.

Authenticates a user and sets osprey_access and osprey_refresh cookies.

Request body:

{
  "username": "admin",
  "password": "admin"
}

Response: 200 OK (sets cookies)

{
  "user": {
    "id": "uuid",
    "username": "admin",
    "display_name": "",
    "role": "admin",
    "is_active": true,
    "force_password_change": true,
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z"
  },
  "default_password_warning": true,
  "force_password_change": true
}

Notes: