diff --git a/internal/start/start.go b/internal/start/start.go index 276b277e7..87436ef18 100644 --- a/internal/start/start.go +++ b/internal/start/start.go @@ -1355,6 +1355,10 @@ func buildGotrueEnv(dbConfig pgconn.Config) []string { func appendGotrueExternalProviderEnv(env []string) []string { for name, config := range utils.Config.Auth.External { + redirectUri := config.RedirectUri + if redirectUri == "" { + redirectUri = utils.Config.Auth.JwtIssuer + "/callback" + } env = append( env, fmt.Sprintf("GOTRUE_EXTERNAL_%s_ENABLED=%v", strings.ToUpper(name), config.Enabled), @@ -1362,10 +1366,8 @@ func appendGotrueExternalProviderEnv(env []string) []string { fmt.Sprintf("GOTRUE_EXTERNAL_%s_SECRET=%s", strings.ToUpper(name), config.Secret.Value), fmt.Sprintf("GOTRUE_EXTERNAL_%s_SKIP_NONCE_CHECK=%t", strings.ToUpper(name), config.SkipNonceCheck), fmt.Sprintf("GOTRUE_EXTERNAL_%s_EMAIL_OPTIONAL=%t", strings.ToUpper(name), config.EmailOptional), + fmt.Sprintf("GOTRUE_EXTERNAL_%s_REDIRECT_URI=%s", strings.ToUpper(name), redirectUri), ) - if config.RedirectUri != "" { - env = append(env, fmt.Sprintf("GOTRUE_EXTERNAL_%s_REDIRECT_URI=%s", strings.ToUpper(name), config.RedirectUri)) - } if config.Url != "" { env = append(env, fmt.Sprintf("GOTRUE_EXTERNAL_%s_URL=%s", strings.ToUpper(name), config.Url)) } diff --git a/internal/start/start_test.go b/internal/start/start_test.go index 732ae6413..de6ddda9b 100644 --- a/internal/start/start_test.go +++ b/internal/start/start_test.go @@ -332,7 +332,7 @@ func TestBuildGotrueEnv(t *testing.T) { assert.Equal(t, "http://127.0.0.1:54321/auth/v1/verify", env["GOTRUE_MAILER_URLPATHS_CONFIRMATION"]) assert.Equal(t, "http://127.0.0.1:54321/auth/v1/verify", env["GOTRUE_MAILER_URLPATHS_RECOVERY"]) assert.Equal(t, "http://127.0.0.1:54321/auth/v1/verify", env["GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE"]) - assert.NotContains(t, env, "GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI") + assert.Equal(t, "http://127.0.0.1:54321/auth/v1/callback", env["GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI"]) }) t.Run("preserves explicit provider redirect override", func(t *testing.T) {