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

Updated by Bricklou about 2 months ago Author Actions #1

  • Subtask #239 added

Updated by Bricklou about 2 months ago Author Actions #2

  • Subtask #240 added

Updated by Bricklou about 2 months ago Author Actions #3

  • Subtask #241 added

Updated by Bricklou about 2 months ago Author Actions #4

  • Subtask #242 added

Updated by Bricklou about 2 months ago Author Actions #5

  • Subtask #243 added

Updated by Bricklou about 2 months ago Author Actions #6

  • Subtask #246 added

Updated by Bricklou about 2 months ago Author Actions #7

  • Subtask deleted (#246)

Updated by Bricklou about 2 months ago Author Actions #8

  • Blocked by Feature #251: Dashboard shell & navigation added

Updated by Bricklou about 1 month ago Author Actions #9

  • Status changed from Draft to To Do

Updated by Bricklou about 1 month ago Author Actions #11

  • Status changed from To Do to Planned
  • Assigned To set to Bricklou
  • Target version set to Server 0.1.0
  • Start date deleted (08/12/2026)

Updated by Bricklou about 1 month ago Author Actions #12

  • Description updated (diff)

Updated by Bricklou about 1 month ago Author Actions #13

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

Updated by Anonymous about 1 month ago Actions #14

Commit referenced this issue: @210@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/27

closes #237

Updated by Anonymous about 1 month ago Actions #15

Commit referenced this issue: @210@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/27

closes #237

Updated by Anonymous about 1 month ago Actions #16

Commit referenced this issue: @210@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/27

closes #237

Updated by Bricklou about 1 month ago Author Actions #17

  • Status changed from Planned to In Progress

Updated by Bricklou about 1 month ago Author Actions #18

  • Status changed from In Progress to In Review

Updated by Anonymous about 1 month ago Actions #19

Commit referenced this issue: @210@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/27

closes #237

Updated by Anonymous about 1 month ago Actions #20

Commit referenced this issue: @210@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/27

closes #237

Updated by Anonymous about 1 month ago Actions #21

Commit referenced this issue: @210@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/27

closes #237

Updated by Anonymous about 1 month ago Actions #22

Commit referenced this issue: @210@

https://codeberg.org/api/v1/repos/Bricklou/kubestro/pulls/27

closes #237

Updated by Anonymous about 1 month ago Actions #23

Commit referenced this issue: @7edd3d52@

https://codeberg.org/Bricklou/kubestro/commit/7edd3d523999b5b5746387c1c499382b050794c7

feat(server): implement webauthn support (!27)

Updated by Bricklou about 1 month ago Author Actions #24

  • Status changed from In Review to Done
Actions

Also available in: PDF Atom