安全上下文
此特征只可用于
安全上下文
(HTTPS),在某些或所有
支持浏览器
.
PublicKeyCredentialCreationOptions
dictionary of the
Web 身份验证 API
holds options passed to
navigators.credentials.create()
in order to create a
PublicKeyCredential
.
PublicKeyCredentialCreationOptions.rp
An object describing the relying party which requested the credential creation.
PublicKeyCredentialCreationOptions.user
An object describing the user account for which the credential is generated.
PublicKeyCredentialCreationOptions.challenge
BufferSource
, emitted by the relying party's server and used as a
cryptographic challenge
. This value will be signed by the authenticator and the signature will be sent back as part of
AuthenticatorAttestationResponse.attestationObject
.
PublicKeyCredentialCreationOptions.pubKeyCredParams
数组
of element which specify the desired features of the credential, including its type and the algorithm used for the cryptographic signature operations. This array is sorted by descending order of preference.
PublicKeyCredentialCreationOptions.timeout
可选
A numerical hint, in milliseconds, which indicates the time the caller is willing to wait for the creation operation to complete. This hint may be overridden by the browser.
PublicKeyCredentialCreationOptions.excludeCredentials
可选
数组
of descriptors for existing credentials. This is provided by the relying party to avoid creating new public key credentials for an existing user who already have some.
PublicKeyCredentialCreationOptions.authenticatorSelection
可选
An object whose properties are criteria used to filter out the potential authenticators for the creation operation.
PublicKeyCredentialCreationOptions.attestation
可选
字符串
which indicates how the attestation (for the authenticator's origin) should be transported.
PublicKeyCredentialCreationOptions.extensions
可选
An object with several client extensions' inputs. Those extensions are used to request additional processing (e.g. dealing with legacy FIDO APIs credentials, prompting a specific text on the authenticator, etc.).
None.
// some examples of COSE algorithms
const cose_alg_ECDSA_w_SHA256 = -7;
const cose_alg_ECDSA_w_SHA512 = -36;
var createCredentialOptions = {
// Format of new credentials is publicKey
publicKey: {
// Relying Party
rp: {
name: "Example CORP",
id: "login.example.com",
icon: "https://login.example.com/login.ico"
},
// Cryptographic challenge from the server
challenge: new Uint8Array(26),
// User
user: {
id: new Uint8Array(16),
name: "john.p.smith@example.com",
displayName: "John P. Smith",
},
// Requested format of new keypair
pubKeyCredParams: [{
type: "public-key",
alg: cose_alg_ECDSA_w_SHA256,
}],
// Timeout after 1 minute
timeout: 60000,
// Do not send the authenticator's origin attestation
attestation: "none",
extensions: {
uvm: true,
exts: true
},
// Filter out authenticators which are bound to the device
authenticatorSelection:{
authenticatorAttachment: "cross-platform",
requireResidentKey: true,
userVerification: "preferred"
},
// Exclude already existing credentials for the user
excludeCredentials: [
{
type: "public-key",
// the id for john.doe@example.com
id : new Uint8Array(26) /* this actually is given by the server */
},
{
type: "public-key",
// the id for john-doe@example.com
id : new Uint8Array(26) /* another id */
}
]
}
};
// Create the new credential with the options above
navigator.credentials.create(createCredentialOptions)
.then(function (newCredentialInfo) {
var attestationResponse = newCredentialInfo.response;
var clientExtensionsOutputs = newCredentialInfo.getClientExtensionsResults();
// Send the response to the relying party server
// it will verify the content and integrity before
// creating a new credential
}).catch(function (err) {
// Deal with any error properly
console.error(err);
});;
| 规范 | 状态 | 注释 |
|---|---|---|
|
Web Authentication: An API for accessing Public Key Credentials Level 1
The definition of 'PublicKeyCredentialCreationOptions dictionary' in that specification. |
推荐 | 初始定义。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
PublicKeyCredentialCreationOptions
|
Chrome 67 | Edge ≤79 | Firefox 60 | IE ? | Opera Yes | Safari 13 | WebView Android No | Chrome Android 67 | Firefox Android ? | Opera Android Yes | Safari iOS 13.3 | Samsung Internet Android No |
attestation
|
Chrome 67 | Edge ≤79 | Firefox 60 | IE ? | Opera ? | Safari 13 | WebView Android No | Chrome Android 67 | Firefox Android ? | Opera Android ? | Safari iOS 13.3 | Samsung Internet Android No |
authenticatorSelection
|
Chrome 67 | Edge ≤79 | Firefox 60 | IE ? | Opera ? | Safari 13 | WebView Android No | Chrome Android 67 | Firefox Android ? | Opera Android ? | Safari iOS 13.3 | Samsung Internet Android No |
challenge
|
Chrome 67 | Edge ≤79 | Firefox 60 | IE ? | Opera ? | Safari 13 | WebView Android No | Chrome Android 67 | Firefox Android ? | Opera Android ? | Safari iOS 13.3 | Samsung Internet Android No |
excludeCredentials
|
Chrome 67 | Edge ≤79 | Firefox 60 | IE ? | Opera ? | Safari 13 | WebView Android No | Chrome Android 67 | Firefox Android ? | Opera Android ? | Safari iOS 13.3 | Samsung Internet Android No |
extensions
|
Chrome 67 | Edge ≤79 | Firefox 60 | IE ? | Opera ? | Safari 13 | WebView Android No | Chrome Android 67 | Firefox Android ? | Opera Android ? | Safari iOS 13.3 | Samsung Internet Android No |
pubKeyCredParams
|
Chrome 67 | Edge ≤79 | Firefox 60 | IE ? | Opera ? | Safari 13 | WebView Android No | Chrome Android 67 | Firefox Android ? | Opera Android ? | Safari iOS 13.3 | Samsung Internet Android No |
rp
|
Chrome 67 | Edge ≤79 | Firefox 60 | IE ? | Opera Yes | Safari 13 | WebView Android No | Chrome Android 67 | Firefox Android ? | Opera Android Yes | Safari iOS 13.3 | Samsung Internet Android No |
timeout
|
Chrome 67 | Edge ≤79 | Firefox 60 | IE ? | Opera ? | Safari 13 | WebView Android No | Chrome Android 67 | Firefox Android ? | Opera Android ? | Safari iOS 13.3 | Samsung Internet Android No |
user
|
Chrome 67 | Edge ≤79 | Firefox 60 | IE ? | Opera ? | Safari 13 | WebView Android No | Chrome Android 67 | Firefox Android ? | Opera Android ? | Safari iOS 13.3 | Samsung Internet Android No |
完整支持
不支持
兼容性未知
实验。期望将来行为有所改变。
PublicKeyRequestOptions
: the dictionary which provides option for the public key retrieval operation
PublicKeyCredentialCreationOptions