summaryrefslogtreecommitdiff
path: root/internal/api/client/auth/auth.go
diff options
context:
space:
mode:
authorLibravatar Dominik Süß <dominik@suess.wtf>2022-12-06 14:15:56 +0100
committerLibravatar GitHub <noreply@github.com>2022-12-06 14:15:56 +0100
commit199b685f430910910e43476caa9ccec6a441d020 (patch)
treeb928c97deae38f8194e51b5e7a69766ddd1a0763 /internal/api/client/auth/auth.go
parent[feature] media: add webp support (#1155) (diff)
downloadgotosocial-199b685f430910910e43476caa9ccec6a441d020.tar.xz
[feature] overhaul the oidc system (#961)
* [feature] overhaul the oidc system this allows for more flexible username handling and prevents account takeover using old email addresses * [feature] add migration path for old OIDC users * [feature] nicer error reporting for users * [docs] document the new OIDC flow * [fix] return early on oidc error * [docs]: add comments on the finalization logic
Diffstat (limited to 'internal/api/client/auth/auth.go')
-rw-r--r--internal/api/client/auth/auth.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/internal/api/client/auth/auth.go b/internal/api/client/auth/auth.go
index 5f5185c7a..8a1d9d483 100644
--- a/internal/api/client/auth/auth.go
+++ b/internal/api/client/auth/auth.go
@@ -50,6 +50,9 @@ const (
// OauthAuthorizePath is the API path for authorization requests (eg., authorize this app to act on my behalf as a user)
OauthAuthorizePath = "/oauth/authorize"
+ // OauthFinalizePath is the API path for completing user registration with additional user details
+ OauthFinalizePath = "/oauth/finalize"
+
// CallbackPath is the API path for receiving callback tokens from external OIDC providers
CallbackPath = oidc.CallbackPath
@@ -64,6 +67,8 @@ const (
sessionScope = "scope"
sessionInternalState = "internal_state"
sessionClientState = "client_state"
+ sessionClaims = "claims"
+ sessionAppID = "app_id"
)
// Module implements the ClientAPIModule interface for
@@ -93,6 +98,7 @@ func (m *Module) Route(s router.Router) error {
s.AttachHandler(http.MethodPost, OauthAuthorizePath, m.AuthorizePOSTHandler)
s.AttachHandler(http.MethodGet, CallbackPath, m.CallbackGETHandler)
+ s.AttachHandler(http.MethodPost, OauthFinalizePath, m.FinalizePOSTHandler)
s.AttachHandler(http.MethodGet, oauth.OOBTokenPath, m.OobHandler)
return nil