diff --git a/apps/web/src/dialogs/settings/app-lock-settings.ts b/apps/web/src/dialogs/settings/app-lock-settings.ts index 9705b2826..94660cc32 100644 --- a/apps/web/src/dialogs/settings/app-lock-settings.ts +++ b/apps/web/src/dialogs/settings/app-lock-settings.ts @@ -27,7 +27,8 @@ import { CredentialType, CredentialWithSecret, CredentialWithoutSecret, - useKeyStore + useKeyStore, + wrongCredentialError } from "../../interfaces/key-store"; import { showToast } from "../../utils/toast"; import { WebAuthn } from "../../utils/webauthn"; @@ -412,7 +413,8 @@ async function authenticateAppLock() { if (!defaultCredential) { return verifyAccount(); } - return !!(await verifyCredential(defaultCredential, (c) => - useKeyStore.getState().verifyCredential(c) - )); + return !!(await verifyCredential(defaultCredential, async (c) => { + if (!(await useKeyStore.getState().verifyCredential(c))) + throw new Error(wrongCredentialError(c)); + })); } diff --git a/apps/web/src/interfaces/key-store.ts b/apps/web/src/interfaces/key-store.ts index b009bf0ea..122272958 100644 --- a/apps/web/src/interfaces/key-store.ts +++ b/apps/web/src/interfaces/key-store.ts @@ -513,7 +513,7 @@ function deserializeCredential( throw new Error("Credentials are of different types."); } -function wrongCredentialError(query: CredentialQuery): string { +export function wrongCredentialError(query: CredentialQuery): string { switch (query.type) { case "password": return "Wrong password";