如何使客户端从受密码保护的页面下载文件?

时间:2019-12-26 01:12:39

标签: node.js express vue.js downloadfile

我有一个受密码保护的ftp服务器。我希望我站点的用户能够通过单击按钮从ftp服务器下载,并且不允许他们知道密码。我一直在使用puppeteer进行身份验证,但是由于代码是写在服务器上的,因此会下载到我的服务器而不是客户端上。这是代码:

async function run() {
        const browser = await puppeteer.launch({headless: false});
        const page = await browser.newPage();
        await page.authenticate({username:theUsername, password:thePassword});
        await page.goto(theURL);
        browser.close();
        return page;
    }
    run();
    res.send();

上面的方法有效,但是它在后端启动了一个浏览器,并且文件被下载到了我不想要的文件系统中。前端是用vue编写的,由于某种原因,我无法在pue上下载puppeteer前端。还有其他方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

您可以使用环境变量从客户端安全地发送密码。有关此信息:https://dev.to/deammer/loading-environment-variables-in-js-apps-1p7p

请特别注意Vue,您需要在环境变量前添加前缀。因此,您需要将VUE_APP_附加到所有内容,而不是MY_VAR,因此它将是VUE_APP_MY_VAR。

await page.authentication({ username: process.env.VUE_APP_USERNAME, password: process.env.VUE_APP_PASSWORD })