all repos — stealth-developers @ ec1288b7069276a5ae7a7d415a9e456e7e9d3364

frontend/src/stores/auth.ts (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
import { ref } from 'vue'
import { defineStore } from 'pinia'
import type { User } from '@/types'

export const useAuthStore = defineStore('auth', () => {
	const isAuthenticated = ref(false)
	const user = ref<User | null>(null)

	async function getUser() {
		try {
			const response = await fetch('/api/me')
			const data = await response.json()
			user.value = data.profile
			isAuthenticated.value = true
		} catch {
			window.location.href = '/api/login'
		}
	}

	return {
		isAuthenticated,
		user,
		getUser,
	}
})