Compare commits
No commits in common. "2592de22853224489e7a7acfc691bdcbf537ff43" and "f5e404329f2f43ccbdf615f98b88959831fa71cf" have entirely different histories.
2592de2285
...
f5e404329f
1 changed files with 3 additions and 22 deletions
|
|
@ -127,35 +127,16 @@ const ensureLoggedIn = async (page, context) => {
|
||||||
await page.goto('https://www.epicgames.com/id/login?lang=en-US&noHostRedirect=true&redirectUrl=' + URL_CLAIM, { waitUntil: 'domcontentloaded' });
|
await page.goto('https://www.epicgames.com/id/login?lang=en-US&noHostRedirect=true&redirectUrl=' + URL_CLAIM, { waitUntil: 'domcontentloaded' });
|
||||||
const emailField = page.locator('input[name="email"], input#email');
|
const emailField = page.locator('input[name="email"], input#email');
|
||||||
const passwordField = page.locator('input[name="password"], input#password');
|
const passwordField = page.locator('input[name="password"], input#password');
|
||||||
const continueBtn = page.locator('button:has-text("Continue"), button[type="submit"]');
|
// Some flows pre-fill email and show only password field
|
||||||
|
if (await emailField.count()) await emailField.fill(cfg.eg_email);
|
||||||
// step 1: email + continue
|
|
||||||
if (await emailField.count()) {
|
|
||||||
await emailField.fill(cfg.eg_email);
|
|
||||||
await continueBtn.first().click();
|
|
||||||
}
|
|
||||||
|
|
||||||
// step 2: password + submit
|
|
||||||
await passwordField.waitFor({ timeout: cfg.login_visible_timeout });
|
await passwordField.waitFor({ timeout: cfg.login_visible_timeout });
|
||||||
await passwordField.fill(cfg.eg_password);
|
await passwordField.fill(cfg.eg_password);
|
||||||
const rememberMe = page.locator('input[name="rememberMe"], #rememberMe');
|
|
||||||
if (await rememberMe.count()) await rememberMe.check().catch(() => {});
|
|
||||||
await page.click('button[type="submit"]');
|
await page.click('button[type="submit"]');
|
||||||
|
|
||||||
// MFA step
|
// MFA step
|
||||||
try {
|
try {
|
||||||
await page.waitForURL('**/id/login/mfa**', { timeout: cfg.login_timeout });
|
await page.waitForURL('**/id/login/mfa**', { timeout: cfg.login_timeout });
|
||||||
const otp = cfg.eg_otpkey && authenticator.generate(cfg.eg_otpkey) || await prompt({ type: 'text', message: 'Enter two-factor sign in code', validate: n => n.toString().length == 6 || 'The code must be 6 digits!' });
|
const otp = cfg.eg_otpkey && authenticator.generate(cfg.eg_otpkey) || await prompt({ type: 'text', message: 'Enter two-factor sign in code', validate: n => n.toString().length == 6 || 'The code must be 6 digits!' });
|
||||||
const codeInputs = page.locator('input[name^="code-input"]');
|
await page.locator('input[name="code-input-0"]').pressSequentially(otp.toString());
|
||||||
if (await codeInputs.count()) {
|
|
||||||
const digits = otp.toString().split('');
|
|
||||||
for (let i = 0; i < digits.length; i++) {
|
|
||||||
const input = codeInputs.nth(i);
|
|
||||||
await input.fill(digits[i]);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
await page.locator('input[name="code-input-0"]').pressSequentially(otp.toString());
|
|
||||||
}
|
|
||||||
await page.click('button[type="submit"]');
|
await page.click('button[type="submit"]');
|
||||||
} catch {
|
} catch {
|
||||||
// no MFA
|
// no MFA
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue