WordPress / WordPress/two-factor

Add Passkeys Support

Open
#779 7 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PHP
Stars
825
Forks
187
Avg merge
2d 11h
Merged PRs (30d)
17

Description

Is your enhancement related to a problem? Please describe.

Add support for Passkeys as a modern, secure authentication method. Passkeys provide phishing-resistant, public-key–based authentication backed by platform authenticators (e.g. Touch ID, Face ID, Windows Hello) and synced credentials, offering a significantly improved security and user experience over passwords and traditional OTP methods.

Background
Passkeys are now broadly supported across modern browsers and operating systems and are actively promoted by Apple, Google, and Microsoft as the long-term replacement for passwords.

Technically, passkeys are built on the Web Authentication standard, but this proposal intentionally treats Passkeys as a first-class user feature, not a low-level WebAuthn/U2F implementation detail. This still is valid and worked over at #232

Proposed Solution

Introduce Passkey authentication as a supported login method, allowing users to authenticate using device-bound or synced passkeys instead of (or in addition to) passwords and OTPs.

High-level capabilities:
  • Users can register one or more passkeys on their account
  • Authentication is performed using the platform’s native UX (biometrics, PIN, security key)
  • Server stores only public key material and metadata
Possible Integration Models

Two integration approaches could be supported, either initially or over time:

Option 1: Passkeys as a Password Replacement (Passwordless Login)

  • Passkeys become the primary authentication method
  • No password required after passkey enrollment
  • Login flow: identify user → authenticate with passkey

Option 2: Passkeys as an Additional Authentication Method
Passkeys complement existing username/password flows

Can be used as:

  • passkeys are an additional layer of authentication
  • enter your username and password
  • confirm the login with your passkey
Designs

NA

Describe alternatives you've considered

No response

Please confirm that you have searched existing issues in this repository.

Yes

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are identified; start by reviewing the existing username/password and OTP authentication flows, along with the earlier discussion in #232. Before implementation, clarify whether passkeys are a password replacement, an additional method, or both, and define registration, authentication, storage, and completion criteria.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
authentication, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.