diff --git a/packages/frontend/src/views/SettingsView.vue b/packages/frontend/src/views/SettingsView.vue index d796401..7fe4133 100644 --- a/packages/frontend/src/views/SettingsView.vue +++ b/packages/frontend/src/views/SettingsView.vue @@ -72,7 +72,7 @@
{{ key.name || $t('settings.passkey.unnamedKey') }} - (ID: ...{{ key.credentialID.slice(-8) }}) + (ID: ...{{ typeof key.credentialID === 'string' && key.credentialID ? key.credentialID.slice(-8) : 'N/A' }})
{{ $t('settings.passkey.createdDate') }}: {{ formatDate(key.creationDate) }} @@ -1216,6 +1216,11 @@ const handleRegisterNewPasskey = async () => { }; const handleDeletePasskey = async (credentialID: string) => { + if (!credentialID || typeof credentialID !== 'string') { + console.error('Attempted to delete a passkey with an invalid or undefined credentialID:', credentialID); + passkeyDeleteError.value = t('settings.passkey.error.deleteFailedInvalidId', '删除失败:无效的凭证 ID。'); // Add translation + return; + } if (!confirm(t('settings.passkey.confirmDelete'))) return; passkeyDeleteLoadingStates[credentialID] = true;