From c1a8e56e0fdf1bd6a945cec0aff0ecfe47ee20af Mon Sep 17 00:00:00 2001 From: Max Bachhuber Date: Wed, 25 Nov 2020 13:23:35 +0100 Subject: [PATCH] Allow to specify 'authenticate.username' and 'authenticate.password' parameters for basic auth support. --- src/core/render-core.js | 7 +++++++ src/http/render-http.js | 4 ++++ src/util/validation.js | 2 ++ 3 files changed, 13 insertions(+) diff --git a/src/core/render-core.js b/src/core/render-core.js index 2b050df1..4ca7e385 100644 --- a/src/core/render-core.js +++ b/src/core/render-core.js @@ -74,6 +74,13 @@ async function render(_opts = {}) { const browser = await createBrowser(opts); const page = await browser.newPage(); + + if (opts.authenticate && opts.authenticate.username && opts.authenticate.password) { + await page.authenticate({ + username: opts.authenticate.username, + password: opts.authenticate.password, + }); + } page.on('console', (...args) => logger.info('PAGE LOG:', ...args)); diff --git a/src/http/render-http.js b/src/http/render-http.js index dca7c9c1..407422ab 100644 --- a/src/http/render-http.js +++ b/src/http/render-http.js @@ -188,6 +188,10 @@ function getOptsFromQuery(query) { selector: query['screenshot.selector'], omitBackground: query['screenshot.omitBackground'], }, + authenticate: { + username: query['authenticate.username'], + password: query['authenticate.password'], + } }; return opts; } diff --git a/src/util/validation.js b/src/util/validation.js index c391ebda..bda911e0 100644 --- a/src/util/validation.js +++ b/src/util/validation.js @@ -63,6 +63,8 @@ const sharedQuerySchema = Joi.object({ 'screenshot.clip.height': Joi.number(), 'screenshot.selector': Joi.string().regex(/(#|\.).*/), 'screenshot.omitBackground': Joi.boolean(), + 'authenticate.username': Joi.string(), + 'authenticate.password': Joi.string(), }); const renderQuerySchema = Joi.object({