feature implement login part 1

This commit is contained in:
Edd
2025-12-11 21:14:25 +00:00
parent a335e713ee
commit 511e645d7e
6 changed files with 31 additions and 7 deletions
+23 -1
View File
@@ -6,18 +6,36 @@ export const useAuthStore = defineStore('auth', () => {
const apiStore = useAPIStore()
const currentUser = ref(undefined)
const token = ref(localStorage.getItem('token') || null)
const isLoggedIn = computed(() => {
return currentUser.value !== undefined
return currentUser.value !== undefined && token.value !== null
})
const currentUserID = computed(() => {
return currentUser.value?.id
})
const setToken = (jwtToken) => {
token.value = jwtToken
if (jwtToken) {
localStorage.setItem('token', jwtToken)
} else {
localStorage.removeItem('token')
}
}
const getToken = () => {
return token.value
}
const login = async (credentials) => {
await apiStore.postLogin(credentials)
const response = await apiStore.getAuthUser()
const jwtToken = response
const user = response.data
setToken(jwtToken)
currentUser.value = response.data
return response.data
}
@@ -25,12 +43,16 @@ export const useAuthStore = defineStore('auth', () => {
const logout = async () => {
await apiStore.postLogout()
currentUser.value = undefined
setToken(null)
}
return {
currentUser,
isLoggedIn,
currentUserID,
token,
setToken,
getToken,
login,
logout,
}