...das ist die saubere Lösung, wenn Du das DB-Object als Referenz übergibst. Ansonsten erstellst Du eine Kopie, die Überflüssig ist und, falls Du sowas wie $db->close() aufrufst, nicht die Verbindung des DB-Objects in deiner Objectvariable in userauth geschlossen wird.

Also:
PHP-Code:
class UserAuth
{
  private 
$db;

  public function 
__construct(DataBase &$db)
  {
    
$this->db=$db;
  }
}

$db=new DataBase();
$user_auth=new UserAuth($db);