From 978e438854c349f4dfa0fa4ee87ecc8775be2cc4 Mon Sep 17 00:00:00 2001 From: Samuel Andert Date: Wed, 30 Aug 2023 19:54:57 +0200 Subject: [PATCH] external triggering of SignRequest --- src/lib/GoogleAuth.svelte | 79 +++++++-------------------------------- src/lib/Signer.svelte | 8 ++++ src/lib/stores.js | 3 ++ src/routes/+page.svelte | 6 +++ 4 files changed, 31 insertions(+), 65 deletions(-) create mode 100644 src/lib/stores.js diff --git a/src/lib/GoogleAuth.svelte b/src/lib/GoogleAuth.svelte index d4b8c3a..44e95d7 100644 --- a/src/lib/GoogleAuth.svelte +++ b/src/lib/GoogleAuth.svelte @@ -13,50 +13,27 @@ const redirectUri = "http://localhost:3000/"; let sessionSigs = null; - let error, currentPKP, authMethod, provider; + let currentPKP, authMethod, provider; let status = "Initializing..."; let pkps: IRelayPKP[] = []; let view = "SIGN_IN"; - let sessionStatuses; - let activeSession = null; - let messageToSign = { user: "Sam", loggedIn: true }; onMount(async () => { - // Load activeSession from local storage + initialize(); + const storedSession = localStorage.getItem("google-session"); const storedPKP = localStorage.getItem("current-pkp"); - if (storedSession && storedPKP) { - activeSession = JSON.parse(storedSession); + console.log("stored session: " + storedSession); + if (storedSession != null) { + sessionSigs = JSON.parse(storedSession); currentPKP = JSON.parse(storedPKP); view = "READY"; + } else { + view = "SIGN_IN"; } - initialize(); }); - $: if (sessionSigs) { - // Store sessionSigs in local storage in its original format - localStorage.setItem("google-session", JSON.stringify(sessionSigs)); - - // Update sessionStatuses - sessionStatuses = Object.entries(sessionSigs).map(([node, data]) => { - const sessionKey = JSON.parse(data.signedMessage).sessionKey; - const expiration = new Date(JSON.parse(data.signedMessage).expiration); - const isExpired = expiration < new Date(); - return { - node, - sessionKey, - expiration: expiration.toISOString(), - isExpired, - }; - }); - - // Find an active session - activeSession = sessionStatuses.find(({ isExpired }) => !isExpired); - - view = "READY"; - } - async function initialize() { status = "Connecting to Google provider..."; try { @@ -69,7 +46,7 @@ } } } catch (err) { - setError(err); + console.log(err); } } @@ -82,7 +59,7 @@ await provider.signIn(); status = "Signing in with Google..."; } catch (err) { - setError(err); + console.log(err); } } @@ -101,7 +78,7 @@ await createSession(pkps[0]); } } catch (err) { - setError(err); + console.log(err); } } @@ -118,30 +95,19 @@ createLitSession(provider, pkp.publicKey, authMethod).then((sigs) => { sessionSigs = sigs; // Store sessionSigs and currentPKP in localStorage - localStorage.setItem("google-signature", JSON.stringify(sessionSigs)); + localStorage.setItem("google-session", JSON.stringify(sessionSigs)); localStorage.setItem("current-pkp", JSON.stringify(currentPKP)); }); status = "Session created successfully."; } catch (err) { - setError(err); + console.log(err); } } - - function setError(err) { - error = err; - view = "ERROR"; - status = `Error: ${err.message}`; - }
- {#if error} -
-

Error

-

{error.message}

-
- {:else if view === "SIGN_IN"} + {#if view === "SIGN_IN"}
Signer - Sessions {/if}

{status}

-
diff --git a/src/lib/Signer.svelte b/src/lib/Signer.svelte index 1ea59bb..c56c1d8 100644 --- a/src/lib/Signer.svelte +++ b/src/lib/Signer.svelte @@ -2,6 +2,7 @@ +