Repository navigation
Conversation
Previously, dynamic selection of the OAuth callback URL for multiple domains would modify the global OAuth client configuration. This caused race conditions when processing concurrent requests for different domains. Now, a request-scoped OAuth client is created for each login flow, ensuring the correct callback URL is used without side-effecting the shared configuration. 75741a
omouren
force-pushed
the
hotfix/callback-urls
branch
from
November 2, 2026 14:56
a7c4d95 to
4c2a896
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cfg.OAuthClient.RedirectURLis process-global. With severaloauth.callback_urls,/loginselected a callback from the request Host and overwrote that global value, while/auth/{state}/later exchanged the code without selecting it again.redirect_uriand receiveoauth2: "redirect_uri_mismatch".strings.Contains(url, ""). A singleoauth.callback_urlstill behaves exactly as before.Test plan
oauth.callback_urlseach send their ownredirect_urion both the authorization redirect and the token exchange.cfg.OAuthClient.callback_urlslist keeps the single startup callback URL.go test ./...passes withVOUCH_ROOTset.