public function verifyToken($token, $userId)
	{
		$user = $this->repository->get($userId);
		$now = new DateTime();

		if ($user) {
			$dateDiff = $now->diff($user->reset_password_requested_at);

			$totalHours = ($dateDiff->d * 24) + $dateDiff->h;

			// remove token older than 2h
			if ($totalHours > 2) {
				$update = [
					'reset_password_requested_at' => NULL,
					'reset_password_token' => NULL,
				];
				$this->repository->update($userId, $update);

				return FALSE;
			}

			if (Passwords::verify($token, $user->reset_password_token)) {
				$update = [
					'reset_password_requested_at' => NULL,
					'reset_password_token' => NULL,
				];
				$this->repository->update($userId, $update);

				return TRUE;
			}
		}

		return FALSE;
	}