Project

General

Profile

Actions

User Story #237

open

Epic #3: Implement a secure user authentication system

Feature #160: User Login

As a user, I want to log in using a security key (WebAuthn), so that I can use phishing-resistant MFA

User Story #237: As a user, I want to log in using a security key (WebAuthn), so that I can use phishing-resistant MFA

Added by Bricklou about 2 months ago. Updated about 1 month ago.

Status:
Done
Priority:
Normal
Assigned To:
Target version:
Start date:
09/06/2026
Due date:
% Done:

100%

Estimated time:
(Total: 0:00 h)

Description

As a user, I want to log in using a security key (WebAuthn/passkey), so that I can use phishing-resistant MFA.

Security keys are one of several MFA methods a user can enroll (alongside TOTP). Used strictly as a second factor, after password โ€” not a passwordless/usernameless login (that is a separate future story).

Acceptance:

  • User can register one or more security keys from their profile, each given a name by the user
  • User can view their registered keys (name, date added, last used) and revoke any of them individually
  • At the MFA step of login, if a user has a security key enrolled, they can use it to complete sign-in; if they have more than one MFA method enrolled, they choose which to use
  • Login flow handles cancellation, no matching key present, and unsupported browser gracefully, with a clear message and a way to fall back to another enrolled method
  • Existing TOTP recovery codes remain the single recovery path if a user loses access to their key(s)
  • A cloned/duplicated authenticator is detected and rejected on sign-in

Subtasks 5 (5 open — 0 closed)

Sub-Task #239: Generate WebAuthn registration challenge and verify attestation (backend)DoneBricklou09/06/2026

Actions
Sub-Task #240: Generate WebAuthn authentication challenge and verify assertion (backend)DoneBricklou09/06/2026

Actions
Sub-Task #241: Store WebAuthn credentials (public key, credential ID, sign count) in the databaseDoneBricklou09/06/2026

Actions
Sub-Task #242: Frontend: WebAuthn credential registration flow in user profileDoneBricklou09/06/2026

Actions
Sub-Task #243: Frontend: WebAuthn assertion flow in MFA login stepDoneBricklou09/06/2026

Actions

Related issues 1 (1 open — 0 closed)

Blocked by Server - Feature #251: Dashboard shell & navigationDoneBricklou08/22/2026

Actions
Actions

Also available in: PDF Atom