FeaturesGuidesDocumentationPricingGet Started

OAuth Callback on Localhost

Configure OAuth redirect URIs for local development with a public HTTPS tunnel and handle the visitor interstitial.

The problem

OAuth providers (Google, GitHub, Auth0, etc.) require HTTPS redirect URIs. http://localhost:3000/callback works with some providers in development mode, but many require a publicly reachable HTTPS URL for testing production-like flows.

Solution: tunnel + redirect URI

npx localtolink --port 3000

Register this redirect URI in your OAuth provider:

https://k7m2x9p4q1.localtolink.com/auth/callback

Use the exact subdomain LocalToLink prints — it changes on each new session.

Redirect URI rules

Browser interstitial warning

When you open the OAuth flow in a browser, visitors (including you) may see LocalToLink's one-time warning page before reaching your app. After clicking through, a cookie bypasses it for 24 hours on that subdomain.

For automated OAuth testing in headless browsers, this is usually fine — click through once per subdomain.

API-based token exchange (server-side) is not affected by the interstitial.

Provider-specific tips

Google OAuth

Add the tunnel URL under Authorized redirect URIs in Google Cloud Console → APIs & Services → Credentials.

GitHub OAuth App

Set Authorization callback URL to your tunnel URL in GitHub → Settings → Developer settings → OAuth Apps.

Auth0

Add the tunnel URL to Allowed Callback URLs in your Auth0 application settings.

Limitations (v1.0)

For n8n OAuth specifically, see n8n OAuth and Webhooks on Localhost.

Try it now

Start a tunnel from your project directory — no account required.

$ npx localtolink

See the full CLI reference for flags and exit codes.

LocalToLink CLI 1.0.1 — verified 2026-09-05