From b36a961d800ab330aa83fae604528c043dbfb959 Mon Sep 17 00:00:00 2001 From: Enrique Hernandez Date: Mon, 8 Feb 2021 23:00:14 -0600 Subject: [PATCH] add auth login error handling --- src/background/session.ts | 57 ++++++++++++++++++++++++--------------- src/modules/auth.ts | 6 ++++- src/views/login.vue | 1 + 3 files changed, 42 insertions(+), 22 deletions(-) diff --git a/src/background/session.ts b/src/background/session.ts index 1b50805..edeb95a 100644 --- a/src/background/session.ts +++ b/src/background/session.ts @@ -2,7 +2,7 @@ import WebSocket from 'ws'; import { windowEmitter } from './windowEmitter'; type Message = { - type:string; + type: string; id: string; } @@ -54,35 +54,50 @@ const receiveMessage = (message: string): void => { export function initSession() { - try { - socket = new WebSocket(`${ip}:${port}`); - socket.binaryType = 'arraybuffer'; + let success = false; + socket = new WebSocket(`${ip}:${port}`); + socket.binaryType = 'arraybuffer'; - socket.on('open', () => { - socket.send(username); - }) + socket.on('open', () => { + console.log('Connected to crimata-platform'); + socket.send(username); + success = true; + }) - socket.on("message", receiveMessage); + socket.on("message", receiveMessage); - } catch(e) { - console.log('error connecting socket', + e); - } + setTimeout(()=> { + if (!success) { + throw new Error('Unable to connect to crimata-platform') + } + }, 3000) } export const authUser = (event: any, arg: AuthRequest) => { - sendMessage({ - content: arg.token - }); - windowEmitter.on('auth-resp', (payload: AuthMessage) => { - event.reply('auth-user-reply', payload); - }) + console.log('sending token to socket', arg) + try { + sendMessage({ + content: arg.token + }); + windowEmitter.on('auth-resp', (payload: AuthMessage) => { + event.reply('auth-user-reply', payload); + }) + } catch(e){ + console.log('Error authenticating user! ' + e); + event.reply('auth-user-reply', e); + } } export const authLogin = (event: any, arg: PostLogin) => { - sendMessage(arg) - windowEmitter.on('auth-resp', (payload: AuthMessage) => { - event.reply('auth-login-reply', payload); - }) + try { + sendMessage(arg) + windowEmitter.on('auth-resp', (payload: AuthMessage) => { + event.reply('auth-login-reply', payload); + }) + } catch(e) { + console.log('Error loging in' + e); + event.reply('auth-login-reply', e); + } } export const sendMessage = (content: PostMessage | Buffer | PostLogin) => { diff --git a/src/modules/auth.ts b/src/modules/auth.ts index 65e5907..16be95c 100644 --- a/src/modules/auth.ts +++ b/src/modules/auth.ts @@ -24,6 +24,7 @@ const state = reactive({ const AUTH_KEY = 'crimata_token'; const token = window.localStorage.getItem(AUTH_KEY); +console.log('token: ',token) if (token) { const { loading, error, data, send } = useIpc('auth-user'); @@ -31,11 +32,12 @@ if (token) { state.authenticating = true; // authenticate token against crimata-platform + console.log('sending token to main') send({ token: token }); - watch([loading], () => { + watch(loading, () => { if (error.value) { console.log('ERROR: failed authentication') window.localStorage.removeItem(AUTH_KEY); @@ -46,6 +48,8 @@ if (token) { state.authenticating = false; }) +} else { + console.log('no token to send') } export const useAuth = () => { diff --git a/src/views/login.vue b/src/views/login.vue index 2f60f7e..7150b53 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -53,6 +53,7 @@ export default defineComponent({ }; watch(loading, () => { + console.log(data.value) setUser(data.value, payload.rememberMe); router.push({ name: "home" }); }); -- 2.43.0