[Web] Allow multiple TOTP
This commit is contained in:
		@@ -1222,8 +1222,8 @@ function set_tfa($_data) {
 | 
			
		||||
    case "totp":
 | 
			
		||||
      $key_id = (!isset($_data["key_id"])) ? 'unidentified' : $_data["key_id"];
 | 
			
		||||
      if ($tfa->verifyCode($_POST['totp_secret'], $_POST['totp_confirm_token']) === true) {
 | 
			
		||||
        $stmt = $pdo->prepare("DELETE FROM `tfa` WHERE `username` = :username");
 | 
			
		||||
        $stmt->execute(array(':username' => $username));
 | 
			
		||||
        //$stmt = $pdo->prepare("DELETE FROM `tfa` WHERE `username` = :username");
 | 
			
		||||
        //$stmt->execute(array(':username' => $username));
 | 
			
		||||
        $stmt = $pdo->prepare("INSERT INTO `tfa` (`username`, `key_id`, `authmech`, `secret`, `active`) VALUES (?, ?, 'totp', ?, '1')");
 | 
			
		||||
        $stmt->execute(array($username, $key_id, $_POST['totp_secret']));
 | 
			
		||||
        $_SESSION['return'][] =  array(
 | 
			
		||||
@@ -1610,15 +1610,17 @@ function verify_tfa_login($username, $token) {
 | 
			
		||||
          AND `authmech` = 'totp'
 | 
			
		||||
          AND `active`='1'");
 | 
			
		||||
      $stmt->execute(array(':username' => $username));
 | 
			
		||||
      $row = $stmt->fetch(PDO::FETCH_ASSOC);
 | 
			
		||||
      if ($tfa->verifyCode($row['secret'], $_POST['token']) === true) {
 | 
			
		||||
        $_SESSION['tfa_id'] = $row['id'];
 | 
			
		||||
        $_SESSION['return'][] =  array(
 | 
			
		||||
          'type' => 'success',
 | 
			
		||||
          'log' => array(__FUNCTION__, $username, '*'),
 | 
			
		||||
          'msg' => 'verified_totp_login'
 | 
			
		||||
        );
 | 
			
		||||
        return true;
 | 
			
		||||
      $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
 | 
			
		||||
      foreach ($rows as $row) {
 | 
			
		||||
        if ($tfa->verifyCode($row['secret'], $_POST['token']) === true) {
 | 
			
		||||
          $_SESSION['tfa_id'] = $row['id'];
 | 
			
		||||
          $_SESSION['return'][] =  array(
 | 
			
		||||
            'type' => 'success',
 | 
			
		||||
            'log' => array(__FUNCTION__, $username, '*'),
 | 
			
		||||
            'msg' => 'verified_totp_login'
 | 
			
		||||
          );
 | 
			
		||||
          return true;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      $_SESSION['return'][] =  array(
 | 
			
		||||
        'type' => 'danger',
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user