fix(passkey): 修复安卓端 Credential Manager 异常并增强兼容

更新说明:\n1. 优化 Passkey 注册参数(residentKey/hints),提升安卓设备兼容性。\n2. 前台与后台统一增强 Passkey 错误提示,针对 NotReadableError/小米浏览器给出明确引导。\n3. 同步更新相关前端页面逻辑与构建产物。
This commit is contained in:
2026-02-16 00:17:11 +08:00
parent cb35df5f01
commit 7627885b1b
30 changed files with 137 additions and 69 deletions

View File

@@ -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)