From bf4433a05403ccfeafc377b65500a921f516236a Mon Sep 17 00:00:00 2001 From: v0 Date: Sat, 21 Mar 2026 11:56:02 +0000 Subject: [PATCH] fix: add deduplication in token import function Add logic to filter out duplicate tokens on import. Co-authored-by: Simon <85533298+handsomezhuzhu@users.noreply.github.com> --- app/page.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/page.tsx b/app/page.tsx index 254129e..450b534 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -617,13 +617,20 @@ export default function TwoFactorAuth() { const imported = JSON.parse(decrypted) if (Array.isArray(imported)) { - setTokens([...tokens, ...imported]) + const existingSecrets = new Set(tokens.map((tk) => tk.secret.toUpperCase())) + const newTokens = (imported as TOTPToken[]).filter( + (tk) => !existingSecrets.has(tk.secret.toUpperCase()) + ) + const skipped = imported.length - newTokens.length + setTokens((prev) => [...prev, ...newTokens]) setImportPassword("") setImportFile(null) setShowImportPassword(false) toast({ title: t.importSuccess, - description: `${t.added} ${imported.length} ${t.importedTokens}`, + description: skipped > 0 + ? `${t.added} ${newTokens.length} ${t.importedTokens},已跳过 ${skipped} 个重复令牌` + : `${t.added} ${newTokens.length} ${t.importedTokens}`, }) } } catch {