pdo = $pdo; if (isset($options['tableName'])) { $this->tableName = $options['tableName']; } else { $this->tableName = 'users'; } if (isset($options['digestColumn'])) { $this->digestColumn = $options['digestColumn']; } else { $this->digestColumn = 'digest'; } if (isset($options['uuidColumn'])) { $this->uuidColumn = $options['uuidColumn']; } else { $this->uuidColumn = 'username'; } if (isset($options['digestPrefix'])) { $this->digestPrefix = $options['digestPrefix']; } } /** * Validates a username and password. * * This method should return true or false depending on if login * succeeded. * * @param string $username * @param string $password * * @return bool */ public function validateUserPass($username, $password) { $stmt = $this->pdo->prepare('SELECT '.$this->digestColumn.' FROM '.$this->tableName.' WHERE '.$this->uuidColumn.' = ?'); $stmt->execute([$username]); $result = $stmt->fetchAll(); if (!count($result)) { return false; } else { $digest = $result[0][$this->digestColumn]; if (isset($this->digestPrefix)) { $digest = substr($digest, strlen($this->digestPrefix)); } if (password_verify($password, $digest)) { return true; } return false; } } }