| | |
| | | import { defineStore } from 'pinia'; |
| | | import { login as apiLogin, logout as apiLogout, getInfo as apiGetInfo } from '@/api/user'; |
| | | import { getToken, setToken, removeToken } from '@/utils/auth'; |
| | | import { login as apiLogin, logout as apiLogout } from '@/api/user'; |
| | | import { getToken, removeToken, setToken } from '@/utils/auth'; |
| | | import router, { resetRouter } from '@/router'; |
| | | import tagsViewStore from './tagsView'; |
| | | import permissionStore from './permission'; |
| | |
| | | login(userInfo):Promise<void> { |
| | | const { username, password } = userInfo; |
| | | return new Promise((resolve, reject) => { |
| | | apiLogin({ username: username.trim(), password: password }).then(response => { |
| | | const { data } = response; |
| | | this.token = data.token; |
| | | setToken(data.token); |
| | | apiLogin(username.trim(), password).then(response => { |
| | | this.token = 'admin'; |
| | | setToken('admin'); |
| | | console.log(response); |
| | | resolve(); |
| | | }).catch(error => { |
| | | reject(error); |
| | |
| | | |
| | | // get user info |
| | | getInfo() { |
| | | return new Promise((resolve, reject) => { |
| | | apiGetInfo(this.token).then(response => { |
| | | const { data } = response; |
| | | |
| | | if (!data) { |
| | | reject('Verification failed, please Login again.'); |
| | | } |
| | | |
| | | const { roles, name, avatar, introduction } = data; |
| | | |
| | | // roles must be a non-empty array |
| | | if (!roles || roles.length <= 0) { |
| | | reject('getInfo: roles must be a non-null array!'); |
| | | } |
| | | |
| | | this.roles = roles; |
| | | this.name = name; |
| | | this.avatar = avatar; |
| | | this.introduction = introduction; |
| | | resolve(data); |
| | | }).catch(error => { |
| | | reject(error); |
| | | }); |
| | | return new Promise((resolve) => { |
| | | const data = { |
| | | roles: ['admin'], |
| | | introduction: 'I am a super administrator', |
| | | avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif', |
| | | name: 'Super Admin' |
| | | }; |
| | | const { roles, name, avatar, introduction } = data; |
| | | this.roles = roles; |
| | | this.name = name; |
| | | this.avatar = avatar; |
| | | this.introduction = introduction; |
| | | resolve(data); |
| | | }); |
| | | }, |
| | | |
| | | // user logout |
| | | logout():Promise<void> { |
| | | return new Promise((resolve, reject) => { |
| | | apiLogout(this.token).then(() => { |
| | | apiLogout().then(() => { |
| | | this.token = ''; |
| | | this.roles = []; |
| | | removeToken(); |