- Add show_dialog=true to OAuth URL to ensure fresh refresh tokens
- Prevent token clearing when refresh fails to avoid total auth loss
- Add ConfigManager to SpotifyClient for token persistence
- Fix token handling flow to maintain authentication state
This resolves the issue where tokens worked once then failed permanently
due to missing refresh tokens and aggressive token clearing on errors.
- Add state parameter generation and validation with crypto-secure random values
- Implement used authorization code tracking to prevent replay attacks
- Add automatic redirect after successful auth to prevent refresh issues
- Enhance OAuth callback with comprehensive security checks
- Fix route conflicts between home page and OAuth callback handling
- Add rand dependency for secure state generation
- Update models.rs to handle optional Spotify API fields
- Improve error messages and logging for security violations
- Add runit service files for spotify-tracker daemon
- Include log service configuration with svlogd
- Create automated deploy.sh script for server setup
- Add comprehensive deployment documentation
- Service runs as dedicated spotify-tracker user
- Includes service management commands and troubleshooting guide
- Add /auth endpoint with user-friendly web form
- Add OAuth callback handler that automatically exchanges codes for tokens
- Update redirect URI to spotify.tougie.live subdomain
- Add success/error pages for authentication flow
- Switch to rustls-only for better cross-platform compatibility
- Update server endpoints to show spotify.tougie.live URLs
- Remove manual code entry requirement