安全上下文
此特征只可用于
安全上下文
(HTTPS),在某些或所有
支持浏览器
.
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.
authenticatorSelection = publicKeyCredentialCreationOptions.authenticatorSelection
An object with the following properties:
authenticatorAttachment
可选
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
可选
false
.
userVerification
可选
required
": user verification is required, the operation will fail if the
response
does not have the UV flag (as part of the
authenticatorData
property of
AuthenticatorAttestationResponse.attestationObject
)
preferred
": user verification is prefered, the operation will not fail if the
response
does not have the UV flag (as part of the
authenticatorData
property of
AuthenticatorAttestationResponse.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.
注意:
见
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
which resolves to
true
when a user-verifiying platform authenticator is available.
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);
});
| 规范 | 状态 | 注释 |
|---|---|---|
|
Web Authentication: An API for accessing Public Key Credentials Level 1
The definition of 'authenticatorSelection' in that specification. |
推荐 | 初始定义。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 |
完整支持
不支持
兼容性未知
实验。期望将来行为有所改变。
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).
PublicKeyCredentialCreationOptions
attestation
authenticatorSelection
challenge
excludeCredentials
extensions
pubKeyCredParams
rp
timeout
user