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;