首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用相同会话并跳过双因素身份验证的无头Chrome脚本

使用相同会话并跳过双因素身份验证的无头Chrome脚本
EN

Stack Overflow用户
提问于 2018-04-26 00:33:58
回答 1查看 2.9K关注 0票数 3

有一个使用双因素认证的网站。在登录表单上有一个复选框,当选中该复选框时,允许我在第一次成功登录之后,在以后绕过双因素身份验证步骤(对于当前设备)。我希望在一开始手动完成这个操作,然后使用无头Chrome自动登录。我认为,通过将木偶师指向我的Chrome应用程序,并将userDataDir指向我的配置文件,它将允许木偶师访问已经登录的站点。但是当我用木偶手访问这个站点时,它仍然显示了双因素认证步骤。

有人知道什么可能会让我在没有双因素认证的情况下访问这个网站吗?澄清一下:手动使用Chrome和登录并不显示双因素身份验证步骤,而是使用傀儡技术。

注意,在下面的代码中,#remember-me是允许我跳过双因子auth的复选框。

代码语言:javascript
复制
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('https://portal.insperity.com', {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实例中,我注意到我没有被登录到Google或Stack溢出。看来我的饼干没被送去。是什么导致了这件事,还是我错过了什么?

作为参考,以下是我正在使用的软件的规范:

  • MacOS 10.13.2
  • 铬65.0.3325.181
  • 木偶师1.3.0
  • 节点10.0.0
EN

回答 1

Stack Overflow用户

发布于 2019-02-11 20:21:02

如果您的网站使用cookie进行身份验证,您可能会更好地设置cookie并绕过双因素身份验证。但这意味着你必须从某个地方得到饼干。

代码语言:javascript
复制
await page.goto('https://youhomepage.com');

    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.com');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50033134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档