bolts/frontend/src/auth.ts

26 lines
627 B
TypeScript

import { reactive } from 'vue'
interface StoredSession {
username: string
role: string
token: string
}
const savedSession = sessionStorage.getItem('bolts-session')
export const auth = reactive<StoredSession>(
savedSession
? JSON.parse(savedSession) as StoredSession
: { username: '', role: '', token: '' },
)
export function saveSession (session: StoredSession) {
Object.assign(auth, session)
sessionStorage.setItem('bolts-session', JSON.stringify(session))
}
export function clearSession () {
Object.assign(auth, { username: '', role: '', token: '' })
sessionStorage.removeItem('bolts-session')
}