最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

无头浏览器脚本使用相同的会话,并跳过双因素认证

运维笔记admin15浏览0评论

无头浏览器脚本使用相同的会话,并跳过双因素认证

无头浏览器脚本使用相同的会话,并跳过双因素认证

有一个使用双因素身份验证的网站。上的登录表单有一个复选框的是,检查时,可以让我绕过在未来后在第一时间成功登录的双因素认证步骤(对于当前设备)。我希望能在第一手动做到这一点,然后用无头Chrome浏览器自动登录。我认为,通过指向操纵木偶到我的Chrome应用程序,也指向userDataDir到我的个人资料,这将使操纵木偶的访问已经登录的网站但是当我的木偶访问该网站,但它仍然显示了双因素认证步骤。

有谁知道什么可能会丢失,让我在没有双因素认证即可访问网站?只是为了澄清:使用Chrome手动和登录不显示双因素认证步骤,但使用的木偶一样。

注意下面的代码,#remember-me是,让我跳过了双因素身份验证的复选框。

const puppeteer = require('puppeteer');

(async() => {
    const browser = await puppeteer.launch({
        executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', 
        headless: true, 
        userDataDir: '/Users/xxxx/Library/Application Support/Google/Chrome'
    });
    const page = await browser.newPage();
    await page.goto('', {waitUntil: 'networkidle2'});
    await page.evaluate(() => {
        document.querySelector('#username').value = 'username';
        document.querySelector('#password').value = 'password';
        document.querySelector('#remember-me').checked = true;
        document.querySelector('#submit').click();
    })
    await page.waitFor(1000);
    await page.screenshot({path: 'page2.png'});
    await browser.close();
})();

更新:我试图改变headless属性false和注释掉await browser.close()线和执行脚本。在推出Chrome的情况下,我注意到,我没有签署成为谷歌或堆栈溢出。因此,它看起来像我的cookies不被发送。这可能是造成这还是我缺少什么?

作为参考,下面是我使用的软件的规格:

  • MacOS的10.13.2
  • Chrome的65.0.3325.181
  • 木偶1.3.0
  • 10.0.0节点
回答如下:

如果您的网站使用cookie进行认证,你可能会设置cookie和旁路双因素认证的更好。不过这意味着你将不得不从什么地方得到的cookie。

await page.goto('https://youhomepage');

    let cookieObject ={
        name:"JSESSIONID",
        value:"9C8E6659B14C2963EDED73C16BB0868A",
        Expires:"Tue, 19 Jan 2038 03:14:07 GMT"
        }

await page.setCookie(cookieObject);
await page.waitFor(1000);
await page.goto('https://youhomepage');
发布评论

评论列表(0)

  1. 暂无评论