| | |
| | | import { login, logout, getInfo } from '@/api/login' |
| | | import { getToken, setToken, removeToken } from '@/utils/auth' |
| | | import { isHttp, isEmpty } from "@/utils/validate" |
| | | import defAva from '@/assets/images/profile.jpg' |
| | | import { login, logout, getInfo, LoginBySSO, tideLogin } from "@/api/login"; |
| | | import { getToken, setToken, removeToken } from "@/utils/auth"; |
| | | import { isHttp, isEmpty } from "@/utils/validate"; |
| | | import defAva from "@/assets/images/profile.jpg"; |
| | | import Vue from "vue"; |
| | | |
| | | const user = { |
| | | state: { |
| | | token: getToken(), |
| | | id: '', |
| | | name: '', |
| | | avatar: '', |
| | | id: "", |
| | | name: "", |
| | | avatar: "", |
| | | nickName: "", |
| | | nameEn: "", |
| | | userName: "", |
| | | roles: [], |
| | | permissions: [] |
| | | permissions: [], |
| | | }, |
| | | |
| | | mutations: { |
| | | SET_TOKEN: (state, token) => { |
| | | state.token = token |
| | | state.token = token; |
| | | }, |
| | | SET_ID: (state, id) => { |
| | | state.id = id |
| | | state.id = id; |
| | | }, |
| | | SET_NAME: (state, name) => { |
| | | state.name = name |
| | | state.name = name; |
| | | }, |
| | | SET_AVATAR: (state, avatar) => { |
| | | state.avatar = avatar |
| | | state.avatar = avatar; |
| | | }, |
| | | SET_NICKNAME: (state, nickName) => { |
| | | state.nickName = nickName; |
| | | }, |
| | | SET_NAMEEN: (state, nameEn) => { |
| | | state.nameEn = nameEn; |
| | | }, |
| | | SET_USERNAME: (state, userName) => { |
| | | state.userName = userName; |
| | | }, |
| | | SET_ROLES: (state, roles) => { |
| | | state.roles = roles |
| | | state.roles = roles; |
| | | }, |
| | | SET_PERMISSIONS: (state, permissions) => { |
| | | state.permissions = permissions |
| | | } |
| | | state.permissions = permissions; |
| | | }, |
| | | }, |
| | | |
| | | actions: { |
| | | // 登录 |
| | | Login({ commit }, userInfo) { |
| | | const username = userInfo.username.trim() |
| | | const password = userInfo.password |
| | | const code = userInfo.code |
| | | const uuid = userInfo.uuid |
| | | const username = userInfo.username.trim(); |
| | | const password = userInfo.password; |
| | | const code = userInfo.code; |
| | | const uuid = userInfo.uuid; |
| | | return new Promise((resolve, reject) => { |
| | | login(username, password, code, uuid).then(res => { |
| | | setToken(res.token) |
| | | commit('SET_TOKEN', res.token) |
| | | resolve() |
| | | }).catch(error => { |
| | | reject(error) |
| | | }) |
| | | login(username, password, code, uuid) |
| | | .then((res) => { |
| | | setToken(res.token); |
| | | commit("SET_TOKEN", res.token); |
| | | Vue.prototype.uploadHeader = { |
| | | Authorization: "Bearer " + res.token, |
| | | }; |
| | | resolve(); |
| | | }) |
| | | .catch((error) => { |
| | | reject(error); |
| | | }); |
| | | }); |
| | | }, |
| | | // 单点登录 |
| | | LoginBySSO({ commit }, accessToken) { |
| | | return new Promise((resolve, reject) => { |
| | | LoginBySSO(accessToken) |
| | | .then((res) => { |
| | | setToken(res.token); |
| | | commit("SET_TOKEN", res.token); |
| | | Vue.prototype.uploadHeader = { |
| | | Authorization: "Bearer " + res.token, |
| | | }; |
| | | resolve(); |
| | | }) |
| | | .catch((error) => { |
| | | reject(error); |
| | | }); |
| | | }) |
| | | }, |
| | | |
| | | // 获取用户信息 |
| | | GetInfo({ commit, state }) { |
| | | return new Promise((resolve, reject) => { |
| | | getInfo().then(res => { |
| | | const user = res.user |
| | | let avatar = user.avatar || "" |
| | | if (!isHttp(avatar)) { |
| | | avatar = (isEmpty(avatar)) ? defAva : process.env.VUE_APP_BASE_API + avatar |
| | | } |
| | | if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组 |
| | | commit('SET_ROLES', res.roles) |
| | | commit('SET_PERMISSIONS', res.permissions) |
| | | } else { |
| | | commit('SET_ROLES', ['ROLE_DEFAULT']) |
| | | } |
| | | commit('SET_ID', user.userId) |
| | | commit('SET_NAME', user.userName) |
| | | commit('SET_AVATAR', avatar) |
| | | resolve(res) |
| | | }).catch(error => { |
| | | reject(error) |
| | | }) |
| | | }) |
| | | getInfo() |
| | | .then((res) => { |
| | | const user = res.user; |
| | | let avatar = user.avatar || ""; |
| | | if (!isHttp(avatar)) { |
| | | avatar = isEmpty(avatar) |
| | | ? defAva |
| | | : process.env.VUE_APP_BASE_API + avatar; |
| | | } |
| | | if (res.roles && res.roles.length > 0) { |
| | | // 验证返回的roles是否是一个非空数组 |
| | | commit("SET_ROLES", res.roles); |
| | | commit("SET_PERMISSIONS", res.permissions); |
| | | } else { |
| | | commit("SET_ROLES", ["ROLE_DEFAULT"]); |
| | | } |
| | | commit("SET_ID", user.userId); |
| | | commit("SET_NAME", user.userName); |
| | | commit("SET_AVATAR", avatar); |
| | | commit("SET_NICKNAME", user.nickName); |
| | | commit("SET_NAMEEN", user.nameEn); |
| | | commit("SET_USERNAME", user.userName); |
| | | resolve(res); |
| | | }) |
| | | .catch((error) => { |
| | | reject(error); |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | // 退出系统 |
| | | LogOut({ commit, state }) { |
| | | return new Promise((resolve, reject) => { |
| | | logout(state.token).then(() => { |
| | | commit('SET_TOKEN', '') |
| | | commit('SET_ROLES', []) |
| | | commit('SET_PERMISSIONS', []) |
| | | removeToken() |
| | | resolve() |
| | | }).catch(error => { |
| | | reject(error) |
| | | }) |
| | | }) |
| | | logout(state.token) |
| | | .then((res) => { |
| | | if (res.data) { |
| | | window.location.href = res.data |
| | | } else { |
| | | commit("SET_TOKEN", ""); |
| | | commit("SET_ROLES", []); |
| | | commit("SET_PERMISSIONS", []); |
| | | removeToken(); |
| | | resolve(); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | reject(error); |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | // 前端 登出 |
| | | FedLogOut({ commit }) { |
| | | return new Promise(resolve => { |
| | | commit('SET_TOKEN', '') |
| | | removeToken() |
| | | resolve() |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | return new Promise((resolve) => { |
| | | commit("SET_TOKEN", ""); |
| | | removeToken(); |
| | | resolve(); |
| | | }); |
| | | }, |
| | | |
| | | export default user |
| | | TideLogin({ commit }, code) { |
| | | return new Promise((resolve, reject) => { |
| | | tideLogin(code) |
| | | .then((res) => { |
| | | setToken(res.token); |
| | | commit("SET_TOKEN", res.token); |
| | | Vue.prototype.uploadHeader = { |
| | | Authorization: "Bearer " + res.token, |
| | | }; |
| | | resolve(); |
| | | }) |
| | | .catch((error) => { |
| | | reject(error); |
| | | }); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | |
| | | export default user; |