clientDataJSON = $clientDataJSON; } abstract public static function hydrate( array $data ): AuthenticatorResponse; public function get_client_data_json(): BinaryString { return $this->clientDataJSON; } public function get_and_decode_client_data(): CollectedClientData { $decoded = json_decode( $this->clientDataJSON->get_binary(), true ); Assert::that( $decoded )->isArray(); return CollectedClientData::hydrate( $decoded ); } }