【发布时间】:2018-09-11 06:25:14
【问题描述】:
我无法找到验证用户身份的方法。 当您手动启动 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. 此登录页面不再存在,如果未找到登录信息,我只会链接到一个页面,其中显示“对不起,您无权访问此页面”。第二个问题或变化是节点服务器是由服务启动的。
最后,我只需要以某种方式访问该页面,然后对其进行截图。但是身份验证给我带来了麻烦。我现在需要解决这个问题,但我想不出其他解决方案。
Puppeteer 验证:
await page.authenticate({
username: "user",
password: "pass"
});
这不起作用或将其与 auth 标头一起使用也不起作用。
保存用户信用。在浏览器中(铬(ium)):
我试图保存用户信誉。对于浏览器内的页面,但这没有任何影响。
网址验证:
我尝试在 (https://user:pass@share.url.com/bla/site.aspx) 之类的 URL 中进行身份验证,但它不起作用。
我不知道如何解决这个问题,你有什么建议我可以用其他方式尝试吗?或者你是否在我的代码或想法中看到了错误?
感谢比尔·盖茨
【问题讨论】:
-
我想补充几点: 1. 我请求一个类似share.url.com/News/AllItems.aspx 的页面(网址已修改)。然后我被导航到另一个页面,因为我无法验证自己。现在我在一个有点像adfs.url.com/adfs/ls/… 的页面上。在 Firefox 的此页面上,会打开一个提示,要求我使用用户名和密码对我进行身份验证。手动登录后一切正常。
标签: node.js authentication sharepoint puppeteer