Skip to content

Commit

Permalink
feat: add relogin
Browse files Browse the repository at this point in the history
  • Loading branch information
ieow committed Mar 15, 2024
1 parent c15b83d commit 2dd92b8
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 5 deletions.
3 changes: 1 addition & 2 deletions demo/redirect-flow-example/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -191,8 +191,7 @@ function App() {
if (!mockEmail) {
throw new Error('mockEmail not found');
}
const { idToken, parsedToken } = await mockLogin(mockEmail);
await flow({ selectedNetwork, manualSync: true, setupProviderOnInit: false, verifier: 'torus-test-health', verifierId: parsedToken.email, idToken });
await flow({ selectedNetwork, manualSync: true, setupProviderOnInit: false, verifier: 'torus-test-health', verifierId: mockEmail });
}
catch (error: unknown) {
console.error(error);
Expand Down
33 changes: 30 additions & 3 deletions demo/redirect-flow-example/src/flow.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@

import { WEB3AUTH_NETWORK_TYPE, Web3AuthMPCCoreKit, TssSecurityQuestion } from "@web3auth/mpc-core-kit";
import BN from "bn.js";
import { mockLogin } from "./App";

export const flow = async (params: { selectedNetwork: WEB3AUTH_NETWORK_TYPE, manualSync: boolean, setupProviderOnInit: boolean, verifier: string, verifierId: string, idToken: string }) => {

export const flow = async (params: { selectedNetwork: WEB3AUTH_NETWORK_TYPE, manualSync: boolean, setupProviderOnInit: boolean, verifier: string, verifierId: string }) => {
const { idToken } = await mockLogin(params.verifierId);
const initStart = Date.now();
console.log("initStart", initStart);
const web3AuthClientId = "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ";
Expand All @@ -29,7 +30,7 @@ export const flow = async (params: { selectedNetwork: WEB3AUTH_NETWORK_TYPE, man
await coreKitInstance.loginWithJWT({
verifier: params.verifier,
verifierId: params.verifierId,
idToken: params.idToken,
idToken: idToken,
}, { prefetchTssPublicKeys: 2});

let loggedInTime = Date.now();
Expand All @@ -55,6 +56,32 @@ export const flow = async (params: { selectedNetwork: WEB3AUTH_NETWORK_TYPE, man
console.log(commitTime - SqFactorTime);

console.log("total login time", commitTime - startTime);



// relogin on new instance ( device )
const instance2 = new Web3AuthMPCCoreKit(
{
web3AuthClientId,
web3AuthNetwork: params.selectedNetwork,
uxMode: 'redirect',
manualSync: params.manualSync,
setupProviderOnInit: params.setupProviderOnInit,
disableHashedFactorKey: true,
}
);

const { idToken: idToken2 } = await mockLogin(params.verifierId);
await instance2.init({ handleRedirectResult: false, rehydrate: false });

await instance2.loginWithJWT({
verifier: params.verifier,
verifierId: params.verifierId,
idToken: idToken2,
});
const sqInstance2 = new TssSecurityQuestion();
const sqFactor = await sqInstance2.recoverFactor(instance2, "answer");
await instance2.inputFactorKey(new BN(sqFactor, "hex"));
console.log(instance2.status);

}

0 comments on commit 2dd92b8

Please sign in to comment.