我们正在为我们的应用程序实现 mfa(multi factor auth),我正在尝试编写自动化测试来测试它。我没有看到任何直接的方法来获取用户登录的谷歌身份验证器代码。
有没有人尝试过这样做?
我们正在为我们的应用程序实现 mfa(multi factor auth),我正在尝试编写自动化测试来测试它。我没有看到任何直接的方法来获取用户登录的谷歌身份验证器代码。
有没有人尝试过这样做?
有一个包...
https://www.npmjs.com/package/totp-generator是一个包,可以帮助您使用谷歌身份验证令牌。请记住,您想在需要时请求这些权利。Javascript 是异步执行的,所以你需要将它包装在一个 Promise 中。下面是一些示例代码,假设 UI 登录后跟令牌输入。
describe('check the tokens', function()
{
// First test
it('cy.window() - get the global window object', () => { cy.viewport(500, 780)
cy.visit('https://site.domain',)
cy.get('input[name=email]').type('email@server.io')
cy.get('input[name=password]').focus().type('qwerty123')
cy.get('.Button').click()
// Now lets wait on an object that appears on the page
// when ready to input the token
cy.get(<someElement>).then(()=>{
let token = getToken();
console.log('first token: ' + token);
})
})
//Second test
it('cy.window() - get the global window object', () => { cy.viewport(500, 780)
cy.visit('https://site.domain',)
cy.get('input[name=email]').type('email@server.io')
cy.get('input[name=password]').focus().type('qwerty123')
cy.get('.Button').click()
// Now lets wait on an object that appears on the page
// when ready to input the token
cy.get(<someOtherElement>).then(()=>{
let token = getToken();
console.log('second token: '+ token);
});
})
})
function getToken () {
const totp = require('totp-generator');
const token = totp('2CQQGPPYFE7JPJAX');
return token;
}