Safeguard
Security Guides•

Should you still use the OAuth implicit flow in 2026?

No for new apps. The OAuth security BCP says clients should not use the implicit grant. Here is why it fell out of favour and what to use instead.

Safeguard Security Team
4 min read

No. For new apps, use the authorization code flow with PKCE instead. The current OAuth security best practice, RFC 9700, says clients should not use the implicit grant or any response type that returns an access token in the authorization response, because those tokens can leak and be replayed.

What the implicit flow is

In the implicit flow (response type token), the authorization server sends the access token straight back in the redirect to the app. There is no separate back channel call to the token endpoint. It was a shortcut for browser based apps, trading a back channel call for simplicity.

RFC 9700 says technology has changed since then, and the security model the shortcut relied on no longer holds up.

Why it was dropped

RFC 9700 describes the implicit grant and other response types that issue access tokens in the authorization response as vulnerable to access token leakage and access token replay. The token travels through the browser address bar and history, can be read by scripts and extensions, and can be injected into the client by an attacker.

The RFC also notes that the way browsers treat fragments during redirects has changed, which weakened the security model the implicit flow was built on.

What to use instead

SituationUse
Browser app with a backend you controlAuthorization code flow with PKCE, handled by the backend
Browser app with no backendAuthorization code flow with PKCE in the browser
Native or mobile appAuthorization code flow with PKCE in the system browser
Legacy app already on implicitPlan a migration, see the steps below

The code flow returns a short lived code in the redirect. The app then exchanges the code at the token endpoint, along with the PKCE verifier. An attacker who sees the redirect gets a code that is useless without the verifier.

Migration steps

  1. Check that your authorization server supports the code flow with PKCE for public clients. RFC 9700 recommends authorization servers advertise PKCE support in their metadata.
  2. Register the same redirect URIs for the new flow, with exact matching.
  3. Change the request from response_type=token to response_type=code and add a code challenge.
  4. Add a call from the app to the token endpoint that sends the code and the verifier.
  5. Remove token parsing from the URL fragment.
  6. Once all users are on the new build, disable the implicit grant for that client.

When implicit is still defensible

RFC 9700 says clients should not use it "unless access token injection in the authorization response is prevented" and the leakage risks are mitigated. That is a high bar. If you cannot show how you meet it, treat the answer as no.

One related detail: the OpenID Connect flows that return only an ID token in the redirect are a different case from returning an access token. The BCP's concern is about access tokens in the authorization response.

Quick check

Is the implicit flow removed from OAuth?

It is still described in RFC 6749, but RFC 9700 advises against using it. Many servers keep it available for older clients.

Does PKCE only matter for mobile apps?

No. RFC 9700 says public clients must use PKCE with the code flow, and recommends it for confidential clients as well.

Safeguard's SBOM and dependency scanning can show which OAuth client libraries are in your tree and whether any carry known advisories. You can try a free scan.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.