@@ -183,7 +183,9 @@ func NewOAuthProxy(opts *Options, validator func(string) bool) *OAuthProxy {
183183 }
184184
185185 redirectURL := opts.redirectURL
186− redirectURL.Path = fmt.Sprintf("%s/callback", opts.ProxyPrefix)
186+ if redirectURL.String() == "" {
187+ redirectURL.Path = fmt.Sprintf("%s/callback", opts.ProxyPrefix)
188+ }
187189
188190 log.Printf("OAuthProxy configured for %s Client ID: %s", opts.provider.Data().ProviderName, opts.ClientID)
189191 refresh := "disabled"
@@ -218,7 +220,7 @@ func NewOAuthProxy(opts *Options, validator func(string) bool) *OAuthProxy {
218220 SignInPath: fmt.Sprintf("%s/sign_in", opts.ProxyPrefix),
219221 SignOutPath: fmt.Sprintf("%s/sign_out", opts.ProxyPrefix),
220222 OAuthStartPath: fmt.Sprintf("%s/start", opts.ProxyPrefix),
221− OAuthCallbackPath: fmt.Sprintf("%s/callback", opts.ProxyPrefix),
223+ OAuthCallbackPath: redirectURL.Path,
222224 AuthOnlyPath: fmt.Sprintf("%s/auth", opts.ProxyPrefix),
223225
224226 ProxyPrefix: opts.ProxyPrefix,