Учетные данные
Credentials — это виртуальный аутентификатор WebAuthn, привязанный к BrowserContext. Он позволяет тестам регистрировать ключи доступа и отвечать на церемонии navigator.credentials.create() / navigator.credentials.get() на странице без настоящего аутентификатора или аппаратного ключа безопасности.
Есть три распространенных способа его использования:
Использование: предварительное создание известных учетных данных
const context = await browser.newContext();
// A passkey your backend already provisioned for a test user.
await context.credentials.create('example.com', {
id: knownCredentialId, // base64url
userHandle: knownUserHandle, // base64url
privateKey: knownPrivateKey, // base64url PKCS#8 (DER)
publicKey: knownPublicKey, // base64url SPKI (DER)
});
await context.credentials.install();
const page = await context.newPage();
await page.goto('https://example.com/login');
// The page's navigator.credentials.get() is answered with the seeded passkey. Использование: сохранение учетных данных с последующим повторным использованием
// setup test: let the app register a passkey, then save the storage state with it.
const context = await browser.newContext();
await context.credentials.install();
const page = await context.newPage();
await page.goto('https://example.com/register');
await page.getByRole('button', { name: 'Create a passkey' }).click();
// Read back the passkey the page registered — it includes the private key.
const [credential] = await context.credentials.get({ rpId: 'example.com' });
fs.writeFileSync('playwright/.auth/passkey.json', JSON.stringify(credential)); // later test: seed the captured passkey so the app starts already enrolled.
const credential = JSON.parse(fs.readFileSync('playwright/.auth/passkey.json', 'utf8'));
const context = await browser.newContext();
await context.credentials.create(credential.rpId, credential);
await context.credentials.install();
const page = await context.newPage();
await page.goto('https://example.com/login');
// navigator.credentials.get() resolves the captured passkey — already signed in. Использование: сохранение учетных данных в состоянии хранилища и последующее восстановление
Примеры сохранения и восстановления состояния хранилища см. в руководстве по аутентификации.
Значения по умолчанию
Методы
create
Создает виртуальные учетные данные WebAuthn и возвращает их.
Если указать только rpId, создаются новая пара ключей ECDSA P-256, идентификатор учетных данных и дескриптор пользователя. Созданные учетные данные доступны для обнаружения (резидентные), поэтому страница может найти их как при входе по имени пользователя и ключу доступа, так и при входе по ключу доступа без имени пользователя. Возвращаемый объект содержит закрытый и открытый ключи, поэтому его можно сохранить на диске и использовать для создания учетных данных в последующем тесте.
Чтобы импортировать известные учетные данные, укажите вместе все четыре параметра: id, userHandle, privateKey и publicKey.
Вызовите credentials.install() до перехода на страницу, использующую WebAuthn.
Использование
await credentials.create(rpId); await credentials.create(rpId, options);
Аргументы
-
rpIdstringИдентификатор проверяющей стороны (обычно эффективный домен сайта).
-
optionsObject (необязательно)-
idstring (необязательно)Идентификатор учетных данных в кодировке Base64url. Создается автоматически, если не указан.
-
privateKeystring (необязательно)Закрытый ключ PKCS#8 (DER) в кодировке Base64url. Создается автоматически, если не указан.
-
publicKeystring (необязательно)Открытый ключ SPKI (DER) в кодировке Base64url. Создается автоматически, если не указан.
-
userHandlestring (необязательно)Дескриптор пользователя в кодировке Base64url. Создается автоматически, если не указан.
-
Возвращает
-
Promise<Object>
-
idstringИдентификатор учетных данных в кодировке Base64url.
-
rpIdstringИдентификатор проверяющей стороны.
-
userHandlestringДескриптор пользователя в кодировке Base64url.
-
privateKeystringЗакрытый ключ PKCS#8 (DER) в кодировке Base64url.
-
publicKeystringОткрытый ключ SPKI (DER) в кодировке Base64url.
-
delete
Удаляет учетные данные из аутентификатора по их идентификатору. Работает с любыми имеющимися учетными данными — как созданными с помощью credentials.create(), так и зарегистрированными самой страницей вызовом navigator.credentials.create().
Использование
await credentials.delete(id);
Аргументы
-
idstringИдентификатор учетных данных в кодировке Base64url.
Возвращает
get
Возвращает все учетные данные, имеющиеся у аутентификатора, с возможностью фильтрации по rpId или id. Сюда входят как учетные данные, созданные с помощью credentials.create(), так и зарегистрированные самой страницей вызовом navigator.credentials.create().
Каждый возвращаемый объект учетных данных содержит закрытый и открытый ключи, поэтому только что зарегистрированный приложением ключ доступа можно сохранить и создать заново в последующем тесте с помощью credentials.create() — см. второй пример в обзоре класса.
Использование
await credentials.get(); await credentials.get(options);
Аргументы
-
optionsObject (необязательно)
Возвращает
install
Устанавливает виртуальный аутентификатор WebAuthn в контекст, переопределяя navigator.credentials.create() и navigator.credentials.get() во всех текущих и будущих страницах. Вызовите этот метод до первого обращения страницы к navigator.credentials.
Важно: пока не будет вызван credentials.install(), перехват не выполняется, и страница использует встроенное поведение WebAuthn платформы (или не использует WebAuthn, если он недоступен). Создание учетных данных с помощью credentials.create() без установки метода добавляет их в аутентификатор, но страница их не увидит.
Использование
await credentials.install();
Возвращает
© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-credentials