mirror of https://github.com/Nezreka/SoulSync.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.2 KiB
2.2 KiB
🔐 Docker OAuth Authentication Fix
Problem: "Insecure redirect URI" Error
When accessing SoulSync from a different device than the Docker host, you may encounter:
INVALID_CLIENT: Insecure redirect URISpotify authentication failed: error: invalid_client
Why this happens: Spotify requires HTTPS for OAuth callbacks when not using localhost.
✅ Simple Solution: SSH Port Forwarding
Step 1: Set up SSH tunnel from your device to Docker host
On the device you're browsing from (laptop/phone/etc):
# Replace 'user' and 'docker-host-ip' with your actual values
ssh -L 8888:localhost:8888 -L 8889:localhost:8889 user@docker-host-ip
# Example:
ssh -L 8888:localhost:8888 -L 8889:localhost:8889 john@192.168.1.100
Keep this SSH connection open while using SoulSync.
Step 2: Configure OAuth redirect URIs
In your Spotify Developer App:
- Set redirect URI to:
http://127.0.0.1:8888/callback
In your Tidal Developer App:
- Set redirect URI to:
http://127.0.0.1:8889/tidal/callback
In SoulSync Settings:
- Set Spotify redirect URI to:
http://127.0.0.1:8888/callback - Set Tidal redirect URI to:
http://127.0.0.1:8889/tidal/callback
Step 3: Use SoulSync normally
- Access SoulSync:
http://docker-host-ip:8008(normal HTTP) - OAuth callbacks will tunnel through SSH to localhost
- Authentication will work without HTTPS requirements
🖥️ Alternative: Direct Access from Docker Host
If you can access SoulSync directly from the Docker host machine:
- Use:
http://127.0.0.1:8008 - Set OAuth redirect URIs to localhost (as above)
- No SSH tunnel needed
🔧 For Advanced Users: Reverse Proxy
Set up nginx/traefik with proper SSL certificates for true HTTPS support. See community guides for Docker reverse proxy setups.
📝 Summary
The core issue is that Spotify requires HTTPS for non-localhost OAuth redirects. The SSH tunnel makes remote devices appear as localhost to bypass this requirement.
Key points:
- ✅ Always use
127.0.0.1in OAuth redirect URIs - ✅ Use SSH tunnel when accessing from different device
- ✅ Keep tunnel open during authentication
- ✅ Works with existing Docker setup - no changes needed