31 lines
494 B
TypeScript
31 lines
494 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',
|
||
|
|
},
|
||
|
|
|
||
|
|
actions: {
|
||
|
|
login(token: string) {
|
||
|
|
this.token = token;
|
||
|
|
},
|
||
|
|
logout() {
|
||
|
|
this.token = null;
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
persist: {
|
||
|
|
key: 'ccn-token',
|
||
|
|
storage: localStorage,
|
||
|
|
pick: ['token'],
|
||
|
|
},
|
||
|
|
})
|