feat: secure browser auth with HttpOnly cookies (#244)
* feat: implement cookie-based authentication for browser requests
- Update /auth/exchange to set HttpOnly cookies for browser requests
- Update require_auth to check cookies first, then fall back to Authorization header
- Remove localStorage usage for session_id across frontend
- Update all fetch calls to use credentials: 'include' instead of Authorization headers
- Only set cookies when frontend URL is on .plyr.fm domain (production/staging)
- Maintain bearer token support for SDK/CLI clients
* fix: resolve cookie auth issues from review (#243)
* fix: resolve cookie auth issues from review
fixes from #239 review:
- fix cookie parameter name mismatch (session_id_cookie → session_id with alias)
- add cookie fallback to optional auth endpoints (tracks list, track detail, album detail)
- remove explicit cookie domain to prevent cross-environment leakage
- change SameSite from 'none' to 'lax' (same-site cookies)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: enable cookies for localhost and remove hardcoded domain checks
- set cookies for localhost with secure=False (http)
- set cookies for production domains with secure=True (https)
- remove hardcoded .plyr.fm checks - just use settings.frontend.url
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
authored by
zzstoatzz.io
Claude
and committed by
GitHub
b9b095cd
af64fa89