diff options
author | 6543 <6543@obermui.de> | 2024-02-15 18:49:13 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-15 17:49:13 +0000 |
commit | 702a876453a8906103e95a62f6cfa25fb08ea8e4 (patch) | |
tree | 3c5714410ddfaee31d02c5aa30ae29ee1467911f | |
parent | 363b5f0b595df4c703d80878d2f2a1bafd647291 (diff) | |
download | gitea-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.go | 24 | ||||
-rw-r--r-- | routers/web/web.go | 1 |
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()) |