Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reconnect and passcode timeout #43

Merged
merged 1 commit into from
Jan 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions src/pages/background/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { configService } from "@pages/background/services/config";
import { userService } from "@pages/background/services/user";
import { signifyService } from "@pages/background/services/signify";
import { IMessage } from "@pages/background/types";
import { senderIsPopup } from "@pages/background/utils";
Expand Down Expand Up @@ -51,7 +52,7 @@ chrome.runtime.onMessage.addListener(function (
}
} else if (senderIsPopup(sender)) {
// handle messages from Popup
console.log("Message received from browser extension popup: " + message);
console.log("Message received from browser extension popup: " + message.type + ":" + message.subtype);

if (
message.type === "authentication" &&
Expand All @@ -66,6 +67,7 @@ chrome.runtime.onMessage.addListener(function (
message.subtype === "disconnect-agent"
) {
await signifyService.disconnect();
await userService.removePasscode();
sendResponse({ data: { isConnected: false } });
}

Expand All @@ -75,10 +77,10 @@ chrome.runtime.onMessage.addListener(function (
) {
await signifyService.connect(
message.data.vendorUrl,
message.data.passcode,
message.data.bootUrl
message.data.passcode
);
await configService.setUrl(message.data.vendorUrl);
await userService.setPasscode(message.data.passcode);
const state = await signifyService.isConnected();
sendResponse({ data: { state } });
}
Expand Down
6 changes: 3 additions & 3 deletions src/pages/background/services/browser-storage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,21 @@ const BrowserStorage = (storage = getNonSyncStorage()) => {
});
}

const getValue = (name) => {
const getValue = (name:string) => {
return new Promise(resolve => {
_storage.get(name, items => {
resolve(items[name]);
});
});
}

const removeKey = (name) => {
const removeKey = (name:string) => {
return new Promise<void>(resolve => {
_storage.remove(name, () => resolve());
});
}

const setValue = (name, value) => {
const setValue = (name:string, value:any) => {
return new Promise<void>(resolve => {
_storage.set({ [name]: value }, () => resolve());
});
Expand Down
8 changes: 4 additions & 4 deletions src/pages/background/services/config.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import { browserStorageService } from "@pages/background/services/browser-storage"

const CONFIG_ENUMS = {
VENDOR_URL: "vendor-url"
KERIA_URL: "keria-url"
}

const Config = () => {
const getUrl = async (): Promise<string> => {
return await browserStorageService.getValue(CONFIG_ENUMS.VENDOR_URL);
return await browserStorageService.getValue(CONFIG_ENUMS.KERIA_URL);
}

const removeUrl = async () => {
await browserStorageService.removeKey(CONFIG_ENUMS.VENDOR_URL);
await browserStorageService.removeKey(CONFIG_ENUMS.KERIA_URL);
}

const setUrl = async (token: string) => {
await browserStorageService.setValue(CONFIG_ENUMS.VENDOR_URL, token)
await browserStorageService.setValue(CONFIG_ENUMS.KERIA_URL, token)
}

return {
Expand Down
26 changes: 19 additions & 7 deletions src/pages/background/services/signify.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,32 @@
import { SignifyClient, Tier, ready, Authenticater } from "signify-ts";
import { userService } from "@pages/background/services/user";
import { configService } from "@pages/background/services/config";



const Signify = () => {
let _client: SignifyClient | null;

const connect = async (url: string, passcode: string, boot_url: string) => {
const connect = async (url: string, passcode: string) => {
await ready();
_client = new SignifyClient(url, passcode, Tier.low, boot_url);
_client = new SignifyClient(url, passcode, Tier.low);
await _client.connect();
};
setTimeout(async () => {
console.log("Timer expired, client and passcode zeroed out");
_client = null;
await userService.removePasscode();
}, 120000);
}

const isConnected = async () => {
console.log("_client is connected", _client);
return _client ? true : false
const passcode = await userService.getPasscode();
const url = await configService.getUrl();
if (url && passcode && !_client) {
await connect(url, passcode);
}

// const state = await _client?.state();
// return state;
console.log(_client ? "Signify client is connected" : "Signify client is not connected");
return _client ? true : false
};

const validateClient = () => {
Expand Down
20 changes: 10 additions & 10 deletions src/pages/background/services/user.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
import { browserStorageService } from "@pages/background/services/browser-storage"

const USER_ENUMS = {
TOKEN: "user-token"
PASSCODE: "user-passcode"
}

const User = () => {
const getToken = async () => {
return await browserStorageService.getValue(USER_ENUMS.TOKEN);
const getPasscode = async () : Promise<string> => {
return await browserStorageService.getValue(USER_ENUMS.PASSCODE);
}

const removeToken = async () => {
await browserStorageService.removeKey(USER_ENUMS.TOKEN);
const removePasscode = async () => {
await browserStorageService.removeKey(USER_ENUMS.PASSCODE);
}

const setToken = async (token: string) => {
await browserStorageService.setValue(USER_ENUMS.TOKEN, token)
const setPasscode = async (passcode: string) => {
await browserStorageService.setValue(USER_ENUMS.PASSCODE, passcode)
}

return {
removeToken,
getToken,
setToken
removePasscode,
getPasscode,
setPasscode
}
}

Expand Down