Repository navigation
Feat: Add application passwords expiry - #11685
DarkMatter-999 wants to merge 13 commits into
Conversation
Test using WordPress PlaygroundThe changes in this pull request can previewed and tested using a WordPress Playground instance. WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser. Some things to be aware of
For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation. |
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the Core Committers: Use this line as a base for the props when committing in SVN: To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
|
Hi @peterwilsoncc, thanks for testing it out. I have updated the code to support:
|
peterwilsoncc
left a comment
There was a problem hiding this comment.
I think I have a better understanding of what was happening last time I tested with the expiry time.
In addition to the date/time offset being incorrect, the expiry time was automatically set to midnight. This resulted in setting an expiry date to today being expired.
I don't think the expiry date needs a time in the date picker. Instead, it can default to 23:59:59 on the date selected. This matches how a credit card expires (an expiry of 01/27 will expire on the 31st of January 2027).
There's a couple of PHP Stan warning that have been posted inline that look correct.
For one, it's a matter of adding the new value to this array
wordpress-develop/src/wp-includes/class-wp-application-passwords.php
Lines 178 to 186 in 51054cb
For the other, it appears to be an incorrect comparison.
Test reportTested at 729ceae. Environment:
Timezone (Peter's report)The offset problem looks fixed. The browser and the site were in different timezones and the stored values were all correct:
Peter's second point is still open. The field is Bug: updating through REST without
|

This PR introduces the ability to set and manage expiration dates for Application Passwords in WordPress. Currently, application passwords are permanent until revoked; this change enhances security by allowing users to define a "Time to Live" (TTL) for specific credentials.
Key Changes:
application-passwordscontroller to support theexpiresfield for both creation and updates.wp_authenticate_application_passwordto validate the expiration timestamp. If a password has expired, authentication will fail with anapplication_password_expirederror.application_password_expiry.mp4
Trac ticket: https://core.trac.wordpress.org/ticket/53995
Use of AI Tools
AI assistance: Yes
Tool(s): Gemini/Antigravity
Model(s): Gemini 3 Flash, Gemini 3.1 Pro
Used for: Troubleshooting E2E test failures and drafting the PR description based on provided code diffs.
This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.