diff --git a/core/Middleware/TwoFactorMiddleware.php b/core/Middleware/TwoFactorMiddleware.php index 0ba8be135f90d..330a9258d9047 100644 --- a/core/Middleware/TwoFactorMiddleware.php +++ b/core/Middleware/TwoFactorMiddleware.php @@ -100,7 +100,11 @@ public function beforeController($controller, $methodName) { if ($controller instanceof ALoginSetupController && $this->userSession->getUser() !== null && $this->twoFactorManager->needsSecondFactor($this->userSession->getUser())) { - return; + $providers = $this->twoFactorManager->getProviderSet($this->userSession->getUser()); + + if ($providers->getProviders() === [] && !$providers->isProviderMissing()) { + return; + } } if ($controller instanceof LoginController && $methodName === 'logout') {