PublicKeyCredentialCreationOptions.authenticatorSelection - Web APIs 编辑
Secure context
This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
authenticatorSelection
, an optional property of the PublicKeyCredentialCreationOptions
dictionary, is an object giving criteria to filter out the authenticators to be used for the creation operation.
Syntax
authenticatorSelection = publicKeyCredentialCreationOptions.authenticatorSelection
Value
An object with the following properties:
authenticatorAttachment
Optional- A string which is either "
platform
" or "cross-platform
". The former describes an authenticator which is bound to the client and which is generally not removable. The latter describes a device which may be used across different platform (such as a USB or NFC device). requireResidentKey
Optional- A boolean which indicated that the credential private key must be stored in the authenticator, the client or in a client device. The default value is
false
. userVerification
Optional- A string qualifying how the user verification should be part of the authentication process. The values may be:
- "
required
": user verification is required, the operation will fail if the response does not have the UV flag (as part of theauthenticatorData
property ofAuthenticatorAttestationResponse.attestationObject
) - "
preferred
": user verification is preferred, the operation will not fail if the response does not have the UV flag (as part of theauthenticatorData
property ofAuthenticatorAttestationResponse.attestationObject
) - "
discouraged
": user verification should not be employed as to minimize the user interaction during the process.
preferred
". - "
The authenticator used for the creation of the public key credential must comply with the requirements.
Note: See PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
which resolves to true
when a user-verifiying platform authenticator is available.
Examples
var publicKey = {
authenticatorSelection:{
authenticatorAttachment: "cross-platform",
requireResidentKey: true,
userVerification: "required"
},
challenge: new Uint8Array(26) /* this actually is given from the server */,
rp: {
name: "Example CORP",
id : "login.example.com"
},
user: {
id: new Uint8Array(26), /* To be changed for each user */
name: "jdoe@example.com",
displayName: "John Doe",
},
pubKeyCredParams: [ {
type: "public-key",
alg: -7 } ]
};
navigator.credentials.create({ publicKey })
.then(function (newCredentialInfo) {
// send attestation response and client extensions
// to the server to proceed with the registration
// of the credential
}).catch(function (err) {
console.error(err);
});
Specifications
Specification | Status | Comment |
---|---|---|
Web Authentication: An API for accessing Public Key Credentials Level 1 The definition of 'authenticatorSelection' in that specification. | Recommendation | Initial definition. |
Browser compatibility
BCD tables only load in the browser
See also
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
AuthenticatorAssertionResponse.authenticatorData
whose structure contains the UV flag (please note that for the creation operation,AuthenticatorAttestationResponse.attestationObject
only contains a CBOR encoded version of this data and does not give an immediate access to the flag).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论