26 lines
627 B
TypeScript
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')
|
|
}
|