From fdbc7a2b23e9179589861891aef7d9e1dacd3804 Mon Sep 17 00:00:00 2001 From: Esa Kataja Date: Sat, 10 May 2025 13:37:25 +0300 Subject: [PATCH] Add message when login failed --- pages/login.vue | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/pages/login.vue b/pages/login.vue index 5ee4007..90ba1d2 100644 --- a/pages/login.vue +++ b/pages/login.vue @@ -3,7 +3,12 @@ definePageMeta({ layout: 'login' }) +const errorMessage = ref('') + const login = async () => { + // Clear any previous error messages + errorMessage.value = '' + const payload = { username: document.getElementById('username')?.value, password: document.getElementById('password')?.value @@ -11,18 +16,23 @@ const login = async () => { const config = useRuntimeConfig() const apiBase = config.public.apiBase const api_url = `${apiBase}/auth/token` - const { data: user } = await useFetch(api_url, { - method: 'POST', - body: payload - }) - if (!user.value) { - throw createError({ - statusCode: 401, - statusMessage: 'Unauthorized' + + try { + const { data: user } = await useFetch(api_url, { + method: 'POST', + body: payload }) + + if (!user.value) { + errorMessage.value = 'Kirjautuminen epäonnistui. Tarkista käyttäjätunnus ja salasana.' + return + } + + localStorage.setItem('user', JSON.stringify(user.value)) + navigateTo('/') + } catch (error) { + errorMessage.value = 'Kirjautuminen epäonnistui. Palvelimeen ei saada yhteyttä.' } - localStorage.setItem('user', JSON.stringify(user.value)) - navigateTo('/') } @@ -31,6 +41,9 @@ const login = async () => {

Kirjaudu

+
+ {{ errorMessage }} +