aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2024-02-15 18:49:13 +0100
committerGitHub <noreply@github.com>2024-02-15 17:49:13 +0000
commit702a876453a8906103e95a62f6cfa25fb08ea8e4 (patch)
tree3c5714410ddfaee31d02c5aa30ae29ee1467911f
parent363b5f0b595df4c703d80878d2f2a1bafd647291 (diff)
downloadgitea-702a876453a8906103e95a62f6cfa25fb08ea8e4.tar.gz
gitea-702a876453a8906103e95a62f6cfa25fb08ea8e4.zip
Advertise WebAuthn support (#29176)
This well-known indicates for password manager, that passkeys are supported. source: https://android-developers.googleblog.com/2023/10/make-passkey-endpoints-well-known-url-part-of-your-passkey-implementation.html spec: https://github.com/ms-id-standards/MSIdentityStandardsExplainers/blob/main/PasskeyEndpointsWellKnownUrl/explainer.md
-rw-r--r--routers/web/passkey.go24
-rw-r--r--routers/web/web.go1
2 files changed, 25 insertions, 0 deletions
diff --git a/routers/web/passkey.go b/routers/web/passkey.go
new file mode 100644
index 0000000000..95874dfc48
--- /dev/null
+++ b/routers/web/passkey.go
@@ -0,0 +1,24 @@
+// Copyright 2024 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package web
+
+import (
+ "net/http"
+
+ "code.gitea.io/gitea/modules/context"
+ "code.gitea.io/gitea/modules/setting"
+)
+
+type passkeyEndpointsType struct {
+ Enroll string `json:"enroll"`
+ Manage string `json:"manage"`
+}
+
+func passkeyEndpoints(ctx *context.Context) {
+ url := setting.AppURL + "user/settings/security"
+ ctx.JSON(http.StatusOK, passkeyEndpointsType{
+ Enroll: url,
+ Manage: url,
+ })
+}
diff --git a/routers/web/web.go b/routers/web/web.go
index ba5c86cc7e..7aa9bb0795 100644
--- a/routers/web/web.go
+++ b/routers/web/web.go
@@ -473,6 +473,7 @@ func registerRoutes(m *web.Route) {
m.Get("/change-password", func(ctx *context.Context) {
ctx.Redirect(setting.AppSubURL + "/user/settings/account")
})
+ m.Get("/passkey-endpoints", passkeyEndpoints)
m.Methods("GET, HEAD", "/*", public.FileHandlerFunc())
}, optionsCorsHandler())