Exchanges the one-time code from the OAuth success redirect (?code=...) for a session. The code is single-use and expires in ~60s. Returns the same shape as login. Replaces returning tokens directly in the OAuth redirect URL.
POST
/api/auth/oauth/exchangeRequest body
requiredapplication/jsoncodestringrequiredThe one-time code returned on the OAuth success redirect (?code=...).
Responses
200OK
any401Unauthorized — code missing, already used, or expired (~60s TTL).
any500Internal Server Error
any