diff --git a/src/stores/authStore.js b/src/stores/authStore.js index 2ce7d63..71017f2 100644 --- a/src/stores/authStore.js +++ b/src/stores/authStore.js @@ -1,51 +1,56 @@ -import { defineStore } from 'pinia'; -import { computed, ref } from 'vue'; -import { apiClient } from '@/services/apiClient'; -import router from '@/router/index.js'; +import { defineStore } from 'pinia' +import { computed, ref } from 'vue' +import { apiClient } from '@/services/apiClient' +import router from '@/router/index.js' export const useAuthStore = defineStore('auth', () => { // state - const accessToken = ref(null); - const user = ref(null); + const accessToken = ref(localStorage.getItem('accessToken')) + const user = ref(null) // getters - const isAuthenticated = computed(() => !!accessToken.value); + const isAuthenticated = computed(() => !!accessToken.value) // actions const setToken = (token) => { - accessToken.value = token; - }; + accessToken.value = token + if (token) { + localStorage.setItem('accessToken', token) + } else { + localStorage.removeItem('accessToken') + } + } const login = async (email, password) => { try { - const response = await apiClient.post('/user/auth/login', { email, password }); - const { access_token, user: userData } = response; + const response = await apiClient.post('/user/auth/login', { email, password }) + const { access_token, user: userData } = response - setToken(access_token); - user.value = userData || null; + setToken(access_token) + user.value = userData || null - router.push('/'); + router.push({ name: 'startPage'}) } catch (error) { - console.error('Login error:', error); + console.error('Login error:', error) } - }; + } const logout = async () => { - accessToken.value = null; - user.value = null; + setToken(null) + user.value = null try { - await apiClient.post('/user/auth/logout'); + await apiClient.post('/user/auth/logout') } catch (error) { - console.error('Logout error:', error); + console.error('Logout error:', error) } - router.push('/startPage'); - }; + router.push('/startPage') + } const forceLogout = () => { - accessToken.value = null; - user.value = null; - router.push('/startPage'); - }; + setToken(null) + user.value = null + router.push({ name: 'startPage'}) + } return { accessToken, @@ -55,5 +60,5 @@ export const useAuthStore = defineStore('auth', () => { login, logout, forceLogout, - }; -}); + } +})