UNPKG

bkui-cli-template-webpack4-saas

Version:

bkui-cli-template-webpack4-saas

69 lines (61 loc) 1.72 kB
/** * @file auth * @author <%- author %> */ import store from '@/store' const ANONYMOUS_USER = { id: null, isAuthenticated: false, username: 'anonymous' } let currentUser = { id: '', username: '' } export default { /** * 未登录状态码 */ HTTP_STATUS_UNAUTHORIZED: 401, /** * 获取当前用户 * * @return {Object} 当前用户信息 */ getCurrentUser () { return currentUser }, /** * 请求当前用户信息 * * @return {Promise} promise 对象 */ requestCurrentUser () { let promise = null if (currentUser.isAuthenticated) { promise = new Promise((resolve, reject) => { resolve(currentUser) }) } else { if (!store.state.user || !Object.keys(store.state.user).length) { // store action userInfo 里,如果请求成功会更新 state.user const req = store.dispatch('userInfo') promise = new Promise((resolve, reject) => { req.then(resp => { // 存储当前用户信息(全局) currentUser = store.getters.user currentUser.isAuthenticated = true resolve(currentUser) }, err => { if (err.response.status === this.HTTP_STATUS_UNAUTHORIZED || err.crossDomain) { resolve({ ...ANONYMOUS_USER }) } else { reject(err) } }) }) } } return promise } }