PublicKeyCredential
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
* Some parts of this feature may have varying levels of support.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Giao diện PublicKeyCredential cung cấp thông tin về một cặp khóa công khai/riêng tư, là thông tin xác thực để đăng nhập vào dịch vụ bằng cặp khóa bất đối xứng không thể bị phishing và chống vi phạm dữ liệu thay vì mật khẩu. Nó kế thừa từ Credential, và là một phần của tiện ích mở rộng Web Authentication API cho Credential Management API.
Note:
API này bị giới hạn trong các ngữ cảnh cấp cao nhất. Việc sử dụng từ bên trong phần tử <iframe> sẽ không có hiệu lực.
Thuộc tính phiên bản
PublicKeyCredential.authenticatorAttachmentRead only-
Một chuỗi cho biết cơ chế mà qua đó việc triển khai WebAuthn được gắn với thiết bị xác thực tại thời điểm cuộc gọi
navigator.credentials.create()hoặcnavigator.credentials.get()liên quan hoàn tất. PublicKeyCredential.idRead only-
Kế thừa từ
Credentialvà được ghi đè để là mã hóa base64url củaPublicKeyCredential.rawId. PublicKeyCredential.rawIdRead only-
Một
ArrayBufferchứa định danh duy nhất toàn cầu choPublicKeyCredentialnày. Định danh này có thể được dùng để tra cứu thông tin xác thực cho các cuộc gọi tương lai tớinavigator.credentials.get(). PublicKeyCredential.responseRead only-
Một phiên bản của đối tượng
AuthenticatorResponse. Nó có loạiAuthenticatorAttestationResponsenếuPublicKeyCredentiallà kết quả của cuộc gọinavigator.credentials.create(), hoặc loạiAuthenticatorAssertionResponsenếuPublicKeyCredentiallà kết quả của cuộc gọinavigator.credentials.get(). PublicKeyCredential.typeRead only-
Kế thừa từ
Credential. Luôn được đặt thànhpublic-keyvới các phiên bảnPublicKeyCredential.
Phương thức tĩnh
PublicKeyCredential.getClientCapabilities()-
Trả về một
Promiseđược giải quyết với một đối tượng có thể được dùng để kiểm tra xem các khả năng WebAuthn cụ thể và tiện ích mở rộng có được hỗ trợ hay không. -
Trả về một
Promiseđược giải quyết thànhtruenếu điều phối có điều kiện có sẵn. PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()-
Trả về một
Promiseđược giải quyết thànhtruenếu một thiết bị xác thực được gắn với nền tảng có khả năng xác minh người dùng. PublicKeyCredential.parseCreationOptionsFromJSON()-
Phương thức tiện lợi để giải tuần tự hóa dữ liệu đăng ký thông tin xác thực được gửi từ máy chủ khi đăng ký người dùng với thông tin xác thực.
PublicKeyCredential.parseRequestOptionsFromJSON()-
Phương thức tiện lợi để giải tuần tự hóa dữ liệu yêu cầu thông tin xác thực được gửi từ máy chủ khi xác thực người dùng (đã đăng ký).
PublicKeyCredential.signalAllAcceptedCredentials()-
Báo hiệu cho thiết bị xác thực tất cả các ID thông tin xác thực hợp lệ mà máy chủ relying party vẫn giữ cho một người dùng cụ thể.
PublicKeyCredential.signalCurrentUserDetails()-
Báo hiệu cho thiết bị xác thực rằng một người dùng cụ thể đã cập nhật tên người dùng và/hoặc tên hiển thị của họ.
PublicKeyCredential.signalUnknownCredential()-
Báo hiệu cho thiết bị xác thực rằng một ID thông tin xác thực không được máy chủ relying party nhận ra, ví dụ vì nó đã bị xóa.
Phương thức phiên bản
PublicKeyCredential.getClientExtensionResults()-
Nếu có tiện ích mở rộng nào được yêu cầu, phương thức này sẽ trả về kết quả xử lý các tiện ích mở rộng đó.
PublicKeyCredential.toJSON()-
Phương thức tiện lợi để tạo biểu diễn chuỗi JSON của
PublicKeyCredentialđể gửi đến máy chủ khi đăng ký người dùng với thông tin xác thực và xác thực người dùng đã đăng ký.
Ví dụ
>Tạo một phiên bản PublicKeyCredential mới
Ở đây, chúng ta dùng navigator.credentials.create() để tạo thông tin xác thực mới.
const createCredentialOptions = {
publicKey: {
challenge: new Uint8Array([
21, 31, 105 /* 29 more random bytes generated by the server */,
]),
rp: {
name: "Example CORP",
id: "login.example.com",
},
user: {
id: new Uint8Array(16),
name: "canand@example.com",
displayName: "Carina Anand",
},
pubKeyCredParams: [
{
type: "public-key",
alg: -7,
},
],
},
};
navigator.credentials
.create(createCredentialOptions)
.then((newCredentialInfo) => {
const response = newCredentialInfo.response;
const clientExtensionsResults =
newCredentialInfo.getClientExtensionResults();
})
.catch((err) => {
console.error(err);
});
Lấy một phiên bản PublicKeyCredential hiện có
Ở đây, chúng ta lấy một thông tin xác thực hiện có từ thiết bị xác thực, bằng cách dùng navigator.credentials.get().
const requestCredentialOptions = {
publicKey: {
challenge: new Uint8Array([
/* bytes sent from the server */
]),
},
};
navigator.credentials
.get(requestCredentialOptions)
.then((credentialInfoAssertion) => {
// send assertion response back to the server
// to proceed with the control of the credential
})
.catch((err) => {
console.error(err);
});
Thông số kỹ thuật
| Specification |
|---|
| Web Authentication: An API for accessing Public Key Credentials - Level 3> # iface-pkcredential> |
Tương thích trình duyệt
Xem thêm
- Giao diện cha
Credential