From a39bb689ac449cd245bc53be0ca15bb613932742 Mon Sep 17 00:00:00 2001 From: Kent Wang Date: Tue, 7 Jan 2025 16:39:35 +0800 Subject: [PATCH] 1.add error handle for get vault salt from server --- .../insomnia/src/ui/routes/auth.authorize.tsx | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/packages/insomnia/src/ui/routes/auth.authorize.tsx b/packages/insomnia/src/ui/routes/auth.authorize.tsx index 2d92aa3f87..1210c60a01 100644 --- a/packages/insomnia/src/ui/routes/auth.authorize.tsx +++ b/packages/insomnia/src/ui/routes/auth.authorize.tsx @@ -32,30 +32,34 @@ export const action: ActionFunction = async ({ window.localStorage.setItem('hasUserLoggedInBefore', 'true'); const userSession = await sessionModel.getOrCreate(); const { accountId, id: sessionId } = userSession; - // check vault salt exists in server - const { salt: vaultSalt } = await insomniaFetch<{ - salt?: string; - error?: string; - }>({ - method: 'GET', - path: '/v1/user/vault', - sessionId, - }); - if (vaultSalt) { - // save vault salt to session - await sessionModel.update(userSession, { vaultSalt }); - // get vault key saved in keychain - const vaultKeyInKeyChain = await window.main.keyChain.retrieveFromKeyChain(accountId); - if (vaultKeyInKeyChain) { - // validate vault key with server - const validateResult = await validateVaultKey(userSession, vaultKeyInKeyChain, vaultSalt); - if (validateResult) { - // Encrypt vault key and save encrypted vault key & raw vault salt to session - const encryptedVaultKey = await window.main.keyChain.encryptString(vaultKeyInKeyChain); - await sessionModel.update(userSession, { vaultKey: encryptedVaultKey, vaultSalt }); - }; - } - }; + try { + // check vault salt exists in server + const { salt: vaultSalt } = await insomniaFetch<{ + salt?: string; + error?: string; + }>({ + method: 'GET', + path: '/v1/user/vault', + sessionId, + }); + if (vaultSalt) { + // save vault salt to session + await sessionModel.update(userSession, { vaultSalt }); + // get vault key saved in keychain + const vaultKeyInKeyChain = await window.main.keyChain.retrieveFromKeyChain(accountId); + if (vaultKeyInKeyChain) { + // validate vault key with server + const validateResult = await validateVaultKey(userSession, vaultKeyInKeyChain, vaultSalt); + if (validateResult) { + // Encrypt vault key and save encrypted vault key & raw vault salt to session + const encryptedVaultKey = await window.main.keyChain.encryptString(vaultKeyInKeyChain); + await sessionModel.update(userSession, { vaultKey: encryptedVaultKey, vaultSalt }); + }; + } + }; + } catch (err) { + console.log(err); + } return redirect('/organization'); };