fix(passkey): 修复安卓端 Credential Manager 异常并增强兼容
更新说明:\n1. 优化 Passkey 注册参数(residentKey/hints),提升安卓设备兼容性。\n2. 前台与后台统一增强 Passkey 错误提示,针对 NotReadableError/小米浏览器给出明确引导。\n3. 同步更新相关前端页面逻辑与构建产物。
This commit is contained in:
@@ -21,7 +21,10 @@ from webauthn.helpers import (
|
||||
parse_registration_credential_json,
|
||||
)
|
||||
from webauthn.helpers.structs import (
|
||||
AuthenticatorSelectionCriteria,
|
||||
PublicKeyCredentialHint,
|
||||
PublicKeyCredentialDescriptor,
|
||||
ResidentKeyRequirement,
|
||||
UserVerificationRequirement,
|
||||
)
|
||||
|
||||
@@ -98,6 +101,12 @@ def make_registration_options(
|
||||
if credential_id
|
||||
]
|
||||
|
||||
authenticator_selection = AuthenticatorSelectionCriteria(
|
||||
resident_key=ResidentKeyRequirement.PREFERRED,
|
||||
require_resident_key=False,
|
||||
user_verification=UserVerificationRequirement.PREFERRED,
|
||||
)
|
||||
|
||||
options = generate_registration_options(
|
||||
rp_id=rp_id,
|
||||
rp_name=rp_name,
|
||||
@@ -105,7 +114,12 @@ def make_registration_options(
|
||||
user_display_name=user_display_name,
|
||||
user_id=user_id_bytes,
|
||||
timeout=120000,
|
||||
authenticator_selection=authenticator_selection,
|
||||
exclude_credentials=exclude_credentials,
|
||||
hints=[
|
||||
PublicKeyCredentialHint.CLIENT_DEVICE,
|
||||
PublicKeyCredentialHint.HYBRID,
|
||||
],
|
||||
)
|
||||
return _to_public_key_options_json(options)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user