Send permissive CORS headers from the fake AS
atproto OAuth public clients run in the browser and reach the fake
AS via `fetch`, which enforces same-origin policy. Without CORS
headers the browser blocked successful 200 responses from
JavaScript before the OAuth flow could progress.
A small axum middleware now answers OPTIONS preflight requests
with `204 No Content` plus permissive `Allow-Origin / Methods /
Headers` and tags every other response with
`Access-Control-Allow-Origin: *` and
`Access-Control-Expose-Headers: DPoP-Nonce` (the only custom
response header a client needs to read, per RFC 9449 §8.2). The
fake AS is a single-tenant test fixture, so reflecting any origin
is appropriate.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>