| | |
| | | state: () => ({ |
| | | token: localStorage.getItem('admin_token') || '', |
| | | user: null, |
| | | userLoaded: false, |
| | | }), |
| | | actions: { |
| | | async login(form) { |
| | | const result = await login(form) |
| | | this.token = result.token |
| | | this.user = result.user |
| | | this.userLoaded = true |
| | | localStorage.setItem('admin_token', result.token) |
| | | }, |
| | | async loadUser() { |
| | | if (!this.token) return |
| | | this.user = await getCurrentUser() |
| | | if (!this.token) { |
| | | this.user = null |
| | | this.userLoaded = true |
| | | return |
| | | } |
| | | if (this.userLoaded && this.user) return |
| | | try { |
| | | this.user = await getCurrentUser() |
| | | } finally { |
| | | this.userLoaded = true |
| | | } |
| | | }, |
| | | async logout() { |
| | | try { |
| | |
| | | } finally { |
| | | this.token = '' |
| | | this.user = null |
| | | this.userLoaded = true |
| | | localStorage.removeItem('admin_token') |
| | | } |
| | | }, |