Workers - Log in to Wrangler without a local callback server
- Announced
- Tags
- Workers
- Severity
- info, set by
reef/rss-rule-v1 - Source
- https://developers.cloudflare.com/changelog/post/2026-08-04-wrangler-login-device-flow/
<p><code>wrangler login</code> now supports the <a href="https://www.rfc-editor.org/rfc/rfc8628" target="_blank" rel="noopener">OAuth 2.0 Device Authorization Grant<span class="external-link"> ↗︎</span></a>. Pass <code>--device</code> to authenticate without starting a temporary callback server on <code>localhost:8976</code>:</p> <figure class="nb-code-figure" data-nb-lang="sh"><pre class="astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz" tabindex="0" data-language="sh" data-nb-lang="sh"><code><span class="line"><span class="nb-shiki-1t8gfj">npx</span><span class="nb-shiki-mdbnqw"> wrangler</span><span class="nb-shiki-mdbnqw"> login</span><span class="nb-shiki-dzsirb"> --device</span></span></code></pre></figure> <p>Wrangler prints a verification URL and a short user code, opens the URL in your default browser with the code already filled in, and polls Cloudflare for an access token while you approve the request:</p> <figure class="nb-code-figure" data-nb-lang="sh"><pre class="astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz" tabindex="0" data-language="sh" data-nb-lang="sh"><code><span class="line"><span class="nb-shiki-1t8gfj"> ⛅️</span><span class="nb-shiki-mdbnqw"> wrangler</span><span class="nb-shiki-dzsirb"> 4.119.0</span></span> <span class="line"><span class="nb-shiki-1t8gfj">────────────────────</span></span> <span class="line"><span class="nb-shiki-1t8gfj">Attempting</span><span class="nb-shiki-mdbnqw"> to</span><span class="nb-shiki-mdbnqw"> login</span><span class="nb-shiki-mdbnqw"> via</span><span class="nb-shiki-mdbnqw"> OAuth</span><span class="nb-shiki-mdbnqw"> Device</span><span class="nb-shiki-mdbnqw"> Authorization</span><span class="nb-shiki-mdbnqw"> Grant...</span></span> <span class="line"><span class="nb-shiki-1t8gfj">To</span><span class="nb-shiki-mdbnqw"> authorize</span><span class="nb-shiki-mdbnqw"> Wrangler,</span><span class="nb-shiki-mdbnqw"> please</span><span class="nb-shiki-mdbnqw"> visit:</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-1t8gfj"> https://dash.cloudflare.com/oauth2/device</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-1t8gfj">and</span><span class="nb-shiki-mdbnqw"> enter</span><span class="nb-shiki-mdbnqw"> the</span><span class="nb-shiki-mdbnqw"> code:</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-1t8gfj"> jPqK6Qvs</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-1t8gfj">You</span><span class="nb-shiki-mdbnqw"> have</span><span class="nb-shiki-dzsirb"> 5</span><span class="nb-shiki-mdbnqw"> minutes</span><span class="nb-shiki-mdbnqw"> to</span><span class="nb-shiki-mdbnqw"> approve</span><span class="nb-shiki-mdbnqw"> this</span><span class="nb-shiki-mdbnqw"> request.</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-1t8gfj">Opening</span><span class="nb-shiki-mdbnqw"> a</span><span class="nb-shiki-mdbnqw"> link</span><span class="nb-shiki-mdbnqw"> in</span><span class="nb-shiki-mdbnqw"> your</span><span class="nb-shiki-mdbnqw"> default</span><span class="nb-shiki-mdbnqw"> browser:</span><span class="nb-shiki-mdbnqw"> https://dash.cloudflare.com/oauth2/device?user_code=jPqK6Qvs</span></span> <span class="line"><span class="nb-shiki-1t8gfj">Successfully</span><span class="nb-shiki-mdbnqw"> logged</span><span class="nb-shiki-mdbnqw"> in.</span></span></code></pre></figure> <p>The default login flow needs your browser to reach <code>localhost:8976</code>, which is not always possible from containers, remote SSH sessions, or GitHub Codespaces. Previously these environments required forwarding ports or fetching the callback URL with <code>curl</code> from a second terminal session. Because <code>--device</code> has no callback server, those workarounds are no longer necessary.</p> <p>Since the plain verification URL and user code are both printed to the terminal, you can also approve the request from a phone or another machine. Pass <code>--browser=false</code> to stop Wrangler from opening a browser at all.</p> <p>Available in Wrangler version 4.119.0 or later. For more information, refer to <a href="https://developers.cloudflare.com/workers/wrangler/commands/general/#login"><code>wrangler login</code></a>.</p>
The text above is the source's. reef added the severity, the dates it could read from the text, and the endpoints and scopes named in code.