diff --git a/packages/backend/src/services/passkey.service.ts b/packages/backend/src/services/passkey.service.ts index 6cfff4c..1b3bf07 100644 --- a/packages/backend/src/services/passkey.service.ts +++ b/packages/backend/src/services/passkey.service.ts @@ -267,7 +267,6 @@ export class PasskeyService { async listPasskeysByUserId(userId: number): Promise[]> { const passkeys = await this.passkeyRepo.getPasskeysByUserId(userId); - console.log(`[PasskeyService] Passkeys for user ${userId} before mapping to partial:`, JSON.stringify(passkeys, null, 2)); // 只返回部分信息以避免泄露敏感数据 return passkeys.map(pk => ({ credential_id: pk.credential_id, diff --git a/packages/frontend/src/views/SettingsView.vue b/packages/frontend/src/views/SettingsView.vue index 7fe4133..d9ae578 100644 --- a/packages/frontend/src/views/SettingsView.vue +++ b/packages/frontend/src/views/SettingsView.vue @@ -1247,19 +1247,24 @@ const handleDeletePasskey = async (credentialID: string) => { const formatDate = (dateInput: string | number | Date | undefined): string => { if (!dateInput) return t('statusMonitor.notAvailable'); try { - const date = new Date(dateInput); - // Check if date is valid - if (isNaN(date.getTime())) { - // Try parsing as seconds if it's a number (common for Unix timestamps) - if (typeof dateInput === 'number') { - const dateFromSeconds = new Date(dateInput * 1000); - if (!isNaN(dateFromSeconds.getTime())) { - return dateFromSeconds.toLocaleString(); - } + // If dateInput is a number, assume it's a Unix timestamp in seconds + if (typeof dateInput === 'number') { + const dateFromSeconds = new Date(dateInput * 1000); + if (!isNaN(dateFromSeconds.getTime())) { + return dateFromSeconds.toLocaleString(); } + // If conversion from seconds still results in an invalid date, return N/A return t('statusMonitor.notAvailable'); } - return date.toLocaleString(); + + // If dateInput is a string or Date object, try to parse it directly + const date = new Date(dateInput); + if (!isNaN(date.getTime())) { + return date.toLocaleString(); + } + + // If all parsing fails + return t('statusMonitor.notAvailable'); } catch (e) { console.error("Error formatting date:", e); return t('statusMonitor.notAvailable');