32 lines
546 B
TypeScript
32 lines
546 B
TypeScript
import { defineStore } from 'pinia'
|
|
|
|
interface TokenState {
|
|
token: string | null
|
|
}
|
|
|
|
export const useTokenStore = defineStore('token', {
|
|
state: (): TokenState => ({
|
|
token: null,
|
|
}),
|
|
|
|
getters: {
|
|
isLoggedIn: (state) => typeof state.token === 'string',
|
|
currentToken: (state) => state.token as string,
|
|
},
|
|
|
|
actions: {
|
|
login(token: string) {
|
|
this.token = token;
|
|
},
|
|
logout() {
|
|
this.token = null;
|
|
},
|
|
},
|
|
|
|
persist: {
|
|
key: 'ccn-token',
|
|
storage: localStorage,
|
|
pick: ['token'],
|
|
},
|
|
})
|