23 lines
468 B
JavaScript
23 lines
468 B
JavaScript
|
|
import { ref } from 'vue'
|
||
|
|
import { currentUser as apiCurrentUser, login as apiLogin } from '@/api/auth'
|
||
|
|
|
||
|
|
const user = ref(null)
|
||
|
|
let initialized = false
|
||
|
|
|
||
|
|
export async function loadUser() {
|
||
|
|
if (!initialized) {
|
||
|
|
user.value = await apiCurrentUser()
|
||
|
|
initialized = true
|
||
|
|
}
|
||
|
|
return user.value
|
||
|
|
}
|
||
|
|
|
||
|
|
export async function login(username) {
|
||
|
|
user.value = await apiLogin(username)
|
||
|
|
return user.value
|
||
|
|
}
|
||
|
|
|
||
|
|
export function useAuth() {
|
||
|
|
return { user, loadUser, login }
|
||
|
|
}
|