diff --git a/src/api/index.ts b/src/api/index.ts index c76c5e8..525a991 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -1,5 +1,7 @@ -import auth from '@/api/interfaces/auth' +import auth from './interfaces/auth' +import user from './interfaces/user' export { - auth + auth, + user } diff --git a/src/api/interfaces/auth.ts b/src/api/interfaces/auth.ts index 5dba67d..95550f6 100644 --- a/src/api/interfaces/auth.ts +++ b/src/api/interfaces/auth.ts @@ -9,7 +9,12 @@ const register = (data: LoginData): Promise => { return request.post('user/auth/register', data) } +const logout = (): Promise => { + return request.post('user/auth/logout') +} + export default { login, - register + register, + logout } diff --git a/src/api/interfaces/user.ts b/src/api/interfaces/user.ts new file mode 100644 index 0000000..b55664a --- /dev/null +++ b/src/api/interfaces/user.ts @@ -0,0 +1,10 @@ +import { BaseInfo } from '@/types/user' +import request from '@/utils/request' + +const info = (): Promise => { + return request.get('user/info') +} + +export default { + info +} diff --git a/src/store/index.ts b/src/store/index.ts index 7b99ef3..ff3cca3 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -37,7 +37,7 @@ export default createStore({ accessToken: (state: State): string => { return state.tokenType + ' ' + state.accessToken }, - user: (state: State): BaseInfo => { + userInfo: (state: State): BaseInfo => { return state.user } }, @@ -64,7 +64,11 @@ export default createStore({ state.user = {} as BaseInfo } }, - actions: {}, + actions: { + setUserInfo ({ commit }, info: BaseInfo) { + commit('setUserInfo', info) + } + }, modules: { auth, refresh diff --git a/src/store/modules/auth.ts b/src/store/modules/auth.ts index 5677550..6a24003 100644 --- a/src/store/modules/auth.ts +++ b/src/store/modules/auth.ts @@ -22,12 +22,16 @@ export default { }) }) }, - Logout ({ commit }) { - return new Promise((resolve) => { - commit('cleanAccessToken', null, { root: true }) - commit('cleanUserInfo', null, { root: true }) - localStorage.removeItem(PERSISTED_KEY) - resolve(true) + Logout: ({ commit }) => { + return new Promise((resolve, reject) => { + auth.logout().then(() => { + commit('cleanAccessToken', null, { root: true }) + commit('cleanUserInfo', null, { root: true }) + localStorage.removeItem(PERSISTED_KEY) + resolve(true) + }).catch(err => { + reject(err.message) + }) }) } } diff --git a/src/views/Auth/login.vue b/src/views/Auth/login.vue index a20cadb..6ae0df5 100644 --- a/src/views/Auth/login.vue +++ b/src/views/Auth/login.vue @@ -1,25 +1,27 @@