store access token

This commit is contained in:
nquidox 2025-09-12 19:51:42 +03:00
parent f66c014a36
commit 6d9b801555

View file

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