summaryrefslogtreecommitdiff
path: root/web/templates/passkeys_list.html
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-02-05 15:35:01 -1000
committerPeter Stone <thepeterstone@gmail.com>2026-02-05 15:35:01 -1000
commit0a1001eb0bd2d1f7c0624ae1ef8ae7ccdb3447d4 (patch)
treecaf04d4f505bb12751579e2f0f1730ead7a9e2e2 /web/templates/passkeys_list.html
parent1eab4d59454fa5999675d51b99e77ac6580aba95 (diff)
Add passkey (WebAuthn) authentication support
Enable passwordless login via passkeys as an alternative to password auth. Users register passkeys from Settings; the login page offers both options. WebAuthn is optional — only active when WEBAUTHN_RP_ID and WEBAUTHN_ORIGIN env vars are set. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'web/templates/passkeys_list.html')
-rw-r--r--web/templates/passkeys_list.html24
1 files changed, 24 insertions, 0 deletions
diff --git a/web/templates/passkeys_list.html b/web/templates/passkeys_list.html
new file mode 100644
index 0000000..4e05461
--- /dev/null
+++ b/web/templates/passkeys_list.html
@@ -0,0 +1,24 @@
+{{define "passkeys_list.html"}}
+<div class="items-list">
+ {{if .Passkeys}}
+ {{range .Passkeys}}
+ <div class="item-row" id="passkey-{{.ID}}">
+ <div class="item-name">
+ <strong>{{if .Name}}{{.Name}}{{else}}Passkey{{end}}</strong>
+ <div class="item-desc">Added {{.CreatedAt.Format "Jan 2, 2006"}}</div>
+ </div>
+ <button class="btn btn-danger btn-sm"
+ hx-delete="/passkeys/{{.ID}}"
+ hx-target="#passkey-{{.ID}}"
+ hx-swap="outerHTML"
+ hx-headers='{"X-CSRF-Token": "{{$.CSRFToken}}"}'
+ hx-confirm="Delete this passkey?">
+ Delete
+ </button>
+ </div>
+ {{end}}
+ {{else}}
+ <div class="empty-state">No passkeys registered. Register one to enable passwordless login.</div>
+ {{end}}
+</div>
+{{end}}