node.js - 使用 Puppeteer 和 Node JS 进行 Sharepoint 身份验证

标签 node.js authentication sharepoint puppeteer

我无法找到验证用户身份的方法。 当您手动启动 Node JS 服务器时,这工作得很好(是的,它的代码很丑陋):

 if (data.URL.includes("https://share.url.com")) {
        await page.type('#userNameInput', 'user');
        await page.type('#passwordInput', 'pass');
        await page.click('#submitButton');

        await page.waitForNavigation({waitUntil: 'load'});
        await page.waitFor(6000);
    }

Sharepoint 不知道我的用户数据,因此他们将我导航到登录页面,我可以在其中填写登录信息,然后转到我请求的网站。但与此同时,进行了 2 项更改: 1. 此登录页面不再存在,如果找不到登录信息,我只会链接到一个页面,其中显示“抱歉,您无权访问此页面”。第二个问题或变化是 Node 服务器由服务启动。

最后,我只需要以某种方式访问​​该页面,然后截取它的屏幕截图。但授权给我带来了麻烦。我现在需要解决这个问题,但我无法考虑其他解决方案。

Puppeteer 身份验证:

await page.authenticate({
    username: "user", 
    password: "pass"
});

这不起作用,或者将其与身份验证 header 一起使用也不起作用。

保存用户信用。在浏览器中(chrom(ium)):

我试图保存用户信誉。对于浏览器内的页面,但这没有任何影响。

URL 验证:

我尝试在 URL 内进行身份验证,例如 ( https://user:pass@share.url.com/bla/site.aspx ),但它不起作用。

我不知道如何解决这个问题,您对我如何以其他方式尝试这个问题有任何建议吗?或者您是否在我的代码或我的想法中看到了错误?

感谢比尔·盖茨

最佳答案

关于

Saving user cred. in browser (chrom(ium)):

我也遇到过类似的情况 - 我想在登录时从 Facebook 进行屏幕截图。为了实现它,我执行了如下步骤:

1) 创建临时用户数据目录

mkdir /tmp/puppeteer_test

2) 使用这些参数运行 Chrome

/usr/bin/google-chrome --user-data-dir=/tmp/puppeteer_test --password-store=basic

3) 访问 facebook.com,登录然后关闭浏览器

4)使用适当的参数运行 puppeteer:

const browser = await puppeteer.launch({
  headless: false,
  executablePath: '/usr/bin/google-chrome',
  args: ['--user-data-dir=/tmp/puppeteer_test']
});
const page = await browser.newPage();
await page.goto('https://facebook.com', { waitUntil: 'networkidle2' });
await page.screenshot({path: 'facebook.png'});
await browser.close();

关于node.js - 使用 Puppeteer 和 Node JS 进行 Sharepoint 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52269829/

相关文章:

c# - 有没有办法以编程方式将数据列表从sharepoint下载到excel

asp.net - 哪些 SharePoint 开发概念对于 ASP.Net 开发人员来说最难理解?

node.js - 尽管正在定义 CSP script-src-elem 错误,但如何修复它?

支持多种登录的Python登录系统

powershell - 共享点错误:Enable-SPFeature:此页面的安全验证无效

linux - 在 OpenSUSE 中登录后但在 X 之前运行脚本/应用程序

authentication - Kerberos - AES-256 Keytab 不起作用

node.js - Sequelize 同步与迁移

javascript - Passport.js 身份验证失败时发回 JSON 响应

javascript - Typescript 和 JavaScript 中的 server.listen 回调函数