Skip to main content
POST
Refresh tokens
This endpoint currently rejects every refresh. A refresh_token cookie replayed exactly as set at sign-in returns 401 “Invalid or expired refresh token.” even seconds after the 201, while the matching access_token still works on GET /auth/me. Until this is fixed, re-run the sign-in flow (GET /auth/siwx/challenge, then POST /auth/siwx/verify) when the 15-minute access token lapses.

Authorizations

refresh_token
string
cookie
required

HttpOnly refresh-token cookie set by POST /auth/siwx/verify (Path=/api/auth, 30 days). The value is a server-signed string rather than the raw refreshToken JWT, so a raw JWT in this cookie, a Bearer header, or a JSON body all return 401 "Refresh token not found.". Browsers attach it on their own; outside a browser, replay the Set-Cookie value verbatim from a cookie jar. Used only by POST /auth/refresh.

Response

New token pair issued.

New token pair from a refresh.

accessToken
string
required

New JWT access token (15 minutes).

refreshToken
string
required

New JWT refresh token (30 days).

message
string
required

Human-readable confirmation, for example Token refreshed successfully.