diff --git a/src/core/controllers/oidc.go b/src/core/controllers/oidc.go index 1479b8e5a..4b8d29447 100644 --- a/src/core/controllers/oidc.go +++ b/src/core/controllers/oidc.go @@ -82,6 +82,15 @@ func (oc *OIDCController) Callback() { oc.SendBadRequestError(errors.New("State mismatch")) return } + + errorCode := oc.Ctx.Request.URL.Query().Get("error") + if errorCode != "" { + errorDescription := oc.Ctx.Request.URL.Query().Get("error_description") + log.Errorf("OIDC callback returned error: %s - %s", errorCode, errorDescription) + oc.SendBadRequestError(errors.Errorf("OIDC callback returned error: %s - %s", errorCode, errorDescription)) + return + } + code := oc.Ctx.Request.URL.Query().Get("code") ctx := oc.Ctx.Request.Context() token, err := oidc.ExchangeToken(ctx, code)