30. Global Authentication & Session Reuse with StorageState

Global Authentication Pattern

import java.nio.file.Paths;

// Step 1: Perform login once and save session state
Page loginPage = browser.newPage();
loginPage.navigate("https://targetqa.com/login");
loginPage.getByLabel("Email").fill("admin@targetqa.com");
loginPage.getByLabel("Password").fill("Secret123!");
loginPage.getByRole(AriaRole.BUTTON).click();

// Save cookies and localStorage to auth.json:
loginPage.context().storageState(new BrowserContext.StorageStateOptions()
.setPath(Paths.get("state/adminAuth.json")));

// Step 2: Instantly spawn pre-authenticated contexts:
BrowserContext authenticatedContext = browser.newContext(
new Browser.NewContextOptions().setStorageStatePath(Paths.get("state/adminAuth.json"))
);
Page authPage = authenticatedContext.newPage();
authPage.navigate("https://targetqa.com/dashboard"); // Already logged in!

Task

  • Implement createAuthenticatedContext:
  • 1. Accept Browser browser and String statePath.
  • 2. Return browser.newContext(new Browser.NewContextOptions().setStorageStatePath(Paths.get(statePath))).
πŸ’‘Common doubts
Did you like the problem?
Lesson 30 of 38
Java
Loading code editor…
Next