add login and register logic

This commit is contained in:
Enrique Hernandez 2021-02-10 20:46:10 -06:00
commit 46a127c217
7 changed files with 82 additions and 47 deletions

View file

@ -2,6 +2,12 @@ import WebSocket from 'ws';
import { windowEmitter } from './windowEmitter';
import { ipcMain } from "electron";
const EventEmitter = require('events');
class SocketEmitter extends EventEmitter {}
export const socketEmitter = new SocketEmitter();
interface RenderMessage {
type: 'render';
content: string;
@ -27,6 +33,7 @@ let auth = false;
const receiveMessage = (message: string): void => {
while(!auth) {
console.log('window emitter @ session.ts recieve')
windowEmitter.emit('auth-res', message);
return;
}
@ -43,6 +50,7 @@ const receiveMessage = (message: string): void => {
const authUser = async (event: any, payload: string | UserCreds | null): Promise<string> => {
return new Promise((resolve, reject) => {
console.log('authenticating...');
console.log('window emitter @ session.ts auth')
windowEmitter.on('auth-res', (res: string) => {
if (res === 'locked') {
reject(res);
@ -74,20 +82,20 @@ export const initSession = () => {
socket = new WebSocket(`${ip}:${port}`);
socket.binaryType = 'arraybuffer';
// handle renderer auth-token event
ipcMain.removeHandler('auth-user'); // avoid setting duplicate handlers
ipcMain.handle('auth-user', authUser);
socket.on('open', () => {
console.log('Success! Connected to Crimata.');
// handle renderer auth-token event
ipcMain.removeHandler('auth-user'); // avoid setting duplicate handlers
ipcMain.handle('auth-user', authUser);
// fetch token from renderer
windowEmitter.emit('ipc-renderer', {
endpoint: 'fetch-token',
message: null
});
success = true;
});
socket.on('error', (e) => {