diff options
author | 2022-12-06 14:15:56 +0100 | |
---|---|---|
committer | 2022-12-06 14:15:56 +0100 | |
commit | 199b685f430910910e43476caa9ccec6a441d020 (patch) | |
tree | b928c97deae38f8194e51b5e7a69766ddd1a0763 /internal/api/client/auth/auth.go | |
parent | [feature] media: add webp support (#1155) (diff) | |
download | gotosocial-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.go | 6 |
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 |