Генерируйте ссылку на скачивание, согласно авторизационным данным, которые вы кладете в authToken. Файл отдать на скачивание можно из закрытой папки по этим данным. Добавляйте к ссылке хэш юзера и кладите этот хэш в токен. Если запросили адрес на скачивание с токеном и токен есть (то есть юзер авторизован) - отдать файл, иначе 403.
CURL не парсит, он получает контент. Собственно, чем бы не делали - время на загрузку данных вы никак не уменьшите, если там не предусмотрена пагинация при запросе к сервисам. Собственно что через PHP, что через JS время будет приблизительно одно и то же для загрузки.