[wp-trac] [WordPress Trac] #65110: Application Passwords: add a safer authorize flow for browser-based apps

WordPress Trac noreply at wordpress.org
Wed Apr 22 08:30:48 UTC 2026


#65110: Application Passwords: add a safer authorize flow for browser-based apps
-----------------------------------+-----------------------------
 Reporter:  alekmitch              |      Owner:  (none)
     Type:  enhancement            |     Status:  new
 Priority:  normal                 |  Milestone:  Awaiting Review
Component:  Application Passwords  |    Version:
 Severity:  normal                 |   Keywords:
  Focuses:                         |
-----------------------------------+-----------------------------
 The current wp-admin/authorize-application.php browser authorization flow
 redirects to success_url with the newly generated Application Password in
 the URL query string.

 As documented in the integration guide, the success redirect currently
 includes:
  * site_url
  * user_login
  * password

 Current core JS still implements that behavior by appending the generated
 password to the redirect URL.

 This makes the flow awkward for browser-based web applications that want
 to avoid placing plaintext credentials in browser URLs. Depending on the
 environment, a URL can be captured by browser history, session restore,
 reverse proxy or CDN logs, observability tooling, analytics middleware, or
 browser extensions before the receiving application has any chance to
 scrub it.

 I am not proposing that the existing success_url behavior be removed or
 changed by default, since that would likely break existing consumers. The
 request is for an additive, safer completion mode for browser-based
 applications.

 Possible directions could include:
  * a form_post style response mode that returns the success payload in an
 auto-submitted HTML form POST instead of query parameters
  * another non-query transport with similar properties
  * a one-time code that the receiving application can redeem server-side
 for the generated Application Password

 The key requirement is to support completing the authorization flow
 without the generated Application Password appearing in the browser URL.

 In practice, the only core-only way I found to avoid this was to omit
 success_url entirely and require the user to copy the generated password
 manually from the WordPress page into the receiving application. That
 works, but it gives up the seamless browser handoff.

 Related tickets for context:
  * #57809 and #51581 show the success_url / reject_url flow is still
 active and maintained, but they do not address the transport of the
 generated password itself
  * #61644 discusses revocation by app_id, which is related operationally
 but does not solve the callback transport problem
  * #53995 is relevant background on Application Password lifecycle, but
 does not solve this callback transport issue either

 If there is already another ticket covering a safer callback transport for
 Application Password authorization, I would be happy to move discussion
 there.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/65110>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list