PublicKeyCredentialRequestOptions

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中可用。

PublicKeyCredentialRequestOptions字典表示传递给CredentialsContainer.get()作为publicKey选项值的对象:。

它用于请求由支持Web Authentication API身份验证器提供的PublicKeyCredential

实例属性

allowCredentials 可选

用于限制可接受凭据列表的对象数组。空数组表示任何凭据都是可接受的。

数组中的每个对象将包含以下属性

id

一个ArrayBufferTypedArrayDataView,表示要检索的公钥凭据的 ID。此值与成功get()调用返回的PublicKeyCredential对象的rawId属性相对应。

transports

一个字符串数组,提供有关客户端可能用于与要检索的公钥凭据的相关身份验证器通信的方法的提示。可能的传输方式包括:"ble""hybrid""internal""nfc""usb"

注意:此值与成功create()调用最初创建凭据时返回的PublicKeyCredential对象的PublicKeyCredential.response.getTransports()方法的返回值相对应。此时,应用程序应将其存储以供以后使用。

type

一个字符串,定义要检索的公钥凭据的类型。目前它可以取一个值"public-key",但将来可能会添加更多值。此值与成功get()调用返回的PublicKeyCredential对象的type属性相对应。

此值默认为空数组。

challenge

一个来自依赖方服务器的ArrayBufferTypedArrayDataView,用作加密挑战。此值将由身份验证器签名,签名将作为AuthenticatorAssertionResponse.signature的一部分发送回(在成功get()调用返回的PublicKeyCredential对象的response属性中可用)。

extensions 可选

一个对象,包含表示任何请求扩展的输入值的属性。这些扩展用于在身份验证过程中由客户端或身份验证器指定其他处理。例如,处理旧版 FIDO API 凭据,以及评估与凭据关联的伪随机函数 (PRF) 的输出。

扩展是可选的,不同的浏览器可能识别不同的扩展。客户端始终可以选择是否处理扩展:如果浏览器无法识别给定的扩展,它将忽略它。有关使用扩展的信息以及哪些浏览器支持哪些扩展,请参阅Web Authentication 扩展

hints 可选

一个字符串数组,提供有关用户代理应为用户提供的身份验证 UI 的提示。

值可以是以下任何一个

"security-key"

身份验证需要一个单独的专用物理设备来提供密钥。

"client-device"

用户使用自己的设备(例如手机)进行身份验证。

"hybrid"

身份验证依赖于授权/身份验证方法的组合,可能依赖于基于用户和服务器的机制。

rpId 可选

一个字符串,指定依赖方的标识符(例如"login.example.org")。出于安全目的

  • 调用 Web 应用程序验证rpId是否与依赖方的来源匹配。
  • 身份验证器验证rpId是否与用于身份验证仪式的凭据的rpId匹配。

此值默认为当前来源的域名。

timeout 可选

一个数值提示,以毫秒为单位,指示依赖方愿意等待检索操作完成的时间。此提示可能会被浏览器覆盖。

userVerification 可选

一个字符串,指定依赖方对身份验证过程的用户验证的要求。此验证由身份验证器启动,身份验证器将要求用户提供可用的因素(例如 PIN 或某种生物识别输入)。

该值可以是以下之一

"required"

依赖方需要用户验证,如果未发生用户验证,则操作将失败。

"preferred"

如果可能,依赖方更喜欢用户验证,但如果未发生用户验证,操作不会失败。

"discouraged"

为了使用户交互尽可能流畅,依赖方不希望进行用户验证。

此值默认为"preferred"

规范

规范
Web Authentication:访问公钥凭据的 API - 3 级
# dictdef-publickeycredentialrequestoptions