mirror of
https://github.com/coder/coder.git
synced 2025-07-03 16:13:58 +00:00
fix: fix IsGithubDotComURL check (#17022)
When DeviceFlow with GitHub OAuth2 is configured, the
`api.GithubOAuth2Config.AuthCode` is
[overridden](b08c8c9e1e/coderd/userauth.go (L779)
)
and returns a value that doesn't pass the `IsGithubDotComURL` check.
This PR ensures the original `AuthCodeURL` method is used instead.
This commit is contained in:
@ -1096,7 +1096,10 @@ func (api *API) userOAuth2Github(rw http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
// If the user is logging in with github.com we update their associated
|
||||
// GitHub user ID to the new one.
|
||||
if externalauth.IsGithubDotComURL(api.GithubOAuth2Config.AuthCodeURL("")) && user.GithubComUserID.Int64 != ghUser.GetID() {
|
||||
// We use AuthCodeURL from the OAuth2Config field instead of the one on
|
||||
// GithubOAuth2Config because when device flow is configured, AuthCodeURL
|
||||
// is overridden and returns a value that doesn't pass the URL check.
|
||||
if externalauth.IsGithubDotComURL(api.GithubOAuth2Config.OAuth2Config.AuthCodeURL("")) && user.GithubComUserID.Int64 != ghUser.GetID() {
|
||||
err = api.Database.UpdateUserGithubComUserID(ctx, database.UpdateUserGithubComUserIDParams{
|
||||
ID: user.ID,
|
||||
GithubComUserID: sql.NullInt64{
|
||||
|
Reference in New Issue
Block a user