fix(oauth): CORS headers on /oauth/logout response
handleLogout bypassed sendJson (because it needs Set-Cookie to clear the
session cookie) and so returned only content-type. the browser then
blocked the response because credentialed cross-origin responses
require an explicit Access-Control-Allow-Origin (not '*'). the server
still cleared the session server-side, so on refresh the user appeared
"logged out" even though JS saw a NetworkError.
Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>