code: protected function enableTwoFactor(BackendUser $user, $return)
  	{
  		// Return if 2FA is enabled already
  		if ($user->useTwoFactor)
  		{
  			return;
  		}
  
  		$container = System::getContainer();
  		$verifyHelp = $GLOBALS['TL_LANG']['MSC']['twoFactorVerificationHelp'];
  
  		/** @var Authenticator $authenticator */
  		$authenticator = $container->get('contao.security.two_factor.authenticator');
  
  		// Validate the verification code
  		if (Input::post('FORM_SUBMIT') == 'tl_two_factor')
  		{
  			if ($authenticator->validateCode($user, Input::post('verify')))
  			{
  				// Enable 2FA
  				$user->useTwoFactor = '1';
  				$user->save();
  
  				throw new RedirectResponseException($return);
  			}
  
  			$this->Template->error = true;
  			$verifyHelp = $GLOBALS['TL_LANG']['ERR']['invalidTwoFactor'];
  		}
  
  		// Generate the secret
  		if (!$user->secret)
  		{
  			$user->secret = random_bytes(128);
  			$user->save();
  		}
  
  		/** @var Request $request */
  		$request = $container->get('request_stack')->getCurrentRequest();
  
  		$this->Template->enable = true;
  		$this->Template->secret = Base32::encodeUpperUnpadded($user->secret);
  		$this->Template->textCode = $GLOBALS['TL_LANG']['MSC']['twoFactorTextCode'];
  		$this->Template->qrCode = base64_encode($authenticator->getQrCode($user, $request));
  		$this->Template->scan = $GLOBALS['TL_LANG']['MSC']['twoFactorScan'];
  		$this->Template->verify = $GLOBALS['TL_LANG']['MSC']['twoFactorVerification'];
  		$this->Template->verifyHelp = $verifyHelp;
  	}
docs: Enable two-factor authentication
  
  @param BackendUser $user
  @param string      $return