PublicKeyCredentialRequestOptions - 表示用于获取给定的 PublicKeyCredential 的选项
PublicKeyCredentialRequestOptions
是 Web 身份验证 API 的词典,包含传递给 navigator.credentials.get()
的选项,以获取给定的 PublicKeyCredential
。
属性
PublicKeyCredentialRequestOptions.challenge
由依赖方的服务器发出的 BufferSource
,用作加密挑战。此值将由身份验证者签名,并且签名将作为 AuthenticatorAssertionResponse.signature
的一部分发送回去。
PublicKeyCredentialRequestOptions.timeout
可选
一个数字提示(以毫秒为单位),指示呼叫者愿意等待检索操作完成的时间。该提示可能会被浏览器覆盖。
PublicKeyCredentialRequestOptions.rpId
可选
一个 USVString
,它表示依赖方的标识符(例如 "login.example.org"
)。如果未提供此选项,则客户端将使用当前来源的域。
PublicKeyCredentialRequestOptions.allowCredentials
可选
一个 Array
,表示凭证描述符,它限制了可接受的现有凭证以供检索。
PublicKeyCredentialRequestOptions.userVerification
可选
一个字符串,用于限定用户验证应如何参与身份验证过程。
PublicKeyCredentialRequestOptions.extensions
可选
一个对象,表示多个客户端扩展输入的对象。这些扩展用于请求其他处理(例如,处理旧式 FIDO API 凭据,在身份验证器上提示特定文本等)。
方法
无。
实例
var options = {
challenge: new Uint8Array([/* 服务器发送的字节 */]),
rpId: "example.com" /* 仅在当前域为 foo.example.com 之类的情况下才能工作 */
userVerification: "preferred",
timeout: 60000, // 等待 1 分钟
allowCredentials: [
{
transports: "usb",
type: "public-key",
id: new Uint8Array(26) // 实际由服务器提供
},
{
transports: "internal",
type: "public-key",
id: new Uint8Array(26) // 实际由服务器提供
}
],
extensions: {
uvm: true, // RP 想知道如何验证用户
loc: false,
txAuthSimple: "您能验证一下吗?"
}
};
navigator.credentials.get({ "publicKey": options })
.then(function (credentialInfoAssertion) {
// 将断言响应发送回服务器以继续控制证书
}).catch(function (err) {
console.error(err);
});
规范
规范 | 状态 | 备注 |
---|---|---|
Web Authentication: An API for accessing Public Key Credentials Level 1 PublicKeyCredentialRequestOptions dictionary 的定义 |
候选推荐 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 67 | 未知 | 60 | 未知 | 支持 | 未知 |
allowCredentials | 67 | 未知 | 60 | 未知 | 支持 | 未知 |
challenge | 67 | 未知 | 60 | 未知 | 支持 | 未知 |
extensions | 67 | 未知 | 60 | 未知 | 支持 | 未知 |
rpId | 67 | 未知 | 60 | 未知 | 支持 | 未知 |
timeout | 67 | 未知 | 60 | 未知 | 支持 | 未知 |
userVerification | 67 | 未知 | 60 | 未知 | 支持 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 67 | 67 | 未知 | 未知 | 未知 | 支持 | 未知 |
allowCredentials | 67 | 67 | 未知 | 未知 | 未知 | 支持 | 未知 |
challenge | 67 | 67 | 未知 | 未知 | 未知 | 支持 | 未知 |
extensions | 67 | 67 | 未知 | 未知 | 未知 | 支持 | 未知 |
rpId | 67 | 67 | 未知 | 未知 | 未知 | 支持 | 未知 |
timeout | 67 | 67 | 未知 | 未知 | 未知 | 支持 | 未知 |
userVerification | 67 | 67 | 未知 | 未知 | 未知 | 支持 | 未知 |
相关链接
PublicKeyCredentialCreationOptions
: 提供公钥凭证创建选项的字典