Actions
Sub-Task #241
openEpic #3: Implement a secure user authentication system
Feature #160: User Login
User Story #237: As a user, I want to log in using a security key (WebAuthn), so that I can use phishing-resistant MFA
Store WebAuthn credentials (public key, credential ID, sign count) in the database
Sub-Task #241:
Store WebAuthn credentials (public key, credential ID, sign count) in the database
Start date:
09/06/2026
Due date:
% Done:
100%
Estimated time:
Description
Store what's needed to recognize and trust each registered security key, per user.
Data kept per key: owning user, user-chosen name, public key, credential identifier, current sign counter, date added, last used date, revoked state.
Behavior:
- A user can have zero, one, or several keys
- Revoking a key immediately makes it unusable for login without deleting its history (name/dates remain visible until fully removed if the UX calls for it — otherwise a straight delete is fine)
- No secret/private key material is ever stored (WebAuthn keeps that on the user's device) — only what's needed to verify future logins
- Sign counter is updated on every successful login use, and a decrease/repeat is treated as a cloning signal (see #240)
Updated by Bricklou about 1 month ago
- Description updated (diff)
Updated by Bricklou about 1 month ago
- Status changed from Draft to To Do
Updated by Bricklou about 1 month ago
- 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 Anonymous about 1 month ago
Commit referenced this issue: @1d4cac55@
https://codeberg.org/Bricklou/kubestro/commit/1d4cac552a8d696b5e9723b3b3184a08bff465ad
feat(webauthn): implement security key registration (#239, #241, #242)
Updated by Bricklou about 1 month ago
- Status changed from Planned to In Progress
- Start date set to 09/06/2026
Updated by Bricklou about 1 month ago
- Status changed from In Progress to In Review
- % Done changed from 0 to 100
Updated by Bricklou about 1 month ago
- Status changed from In Review to Done
Actions