zouyu
2025-03-19 45792b3776cda2e1ada31755ffc226a663f90b48
src/store/modules/user.js
@@ -1,7 +1,8 @@
import { login, logout, getInfo } from "@/api/login";
import { login, logout, getInfo,LoginBySSO } 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: {
@@ -10,6 +11,8 @@
    name: "",
    avatar: "",
    nickName: "",
    companyName: "",
    loginUserInfo: {},
    roles: [],
    permissions: [],
  },
@@ -29,6 +32,12 @@
    },
    SET_NICKNAME: (state, nickName) => {
      state.nickName = nickName;
    },
    SET_COMPANYNAME: (state, companyName) => {
      state.companyName = companyName;
    },
    SET_LOGINUSERINFO: (state, loginUserInfo) => {
      state.loginUserInfo = loginUserInfo;
    },
    SET_ROLES: (state, roles) => {
      state.roles = roles;
@@ -50,6 +59,9 @@
          .then((res) => {
            setToken(res.token);
            commit("SET_TOKEN", res.token);
            Vue.prototype.uploadHeader = {
              Authorization: "Bearer " + res.token,
            };
            resolve();
          })
          .catch((error) => {
@@ -57,7 +69,23 @@
          });
      });
    },
    // 单点登录
    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) => {
@@ -77,10 +105,12 @@
            } else {
              commit("SET_ROLES", ["ROLE_DEFAULT"]);
            }
            commit("SET_LOGINUSERINFO", user);
            commit("SET_ID", user.userId);
            commit("SET_NAME", user.userName);
            commit("SET_AVATAR", avatar);
            commit("SET_NICKNAME", user.nickName);
            commit("SET_COMPANYNAME", user.companyName);
            resolve(res);
          })
          .catch((error) => {
@@ -93,12 +123,16 @@
    LogOut({ commit, state }) {
      return new Promise((resolve, reject) => {
        logout(state.token)
          .then(() => {
            commit("SET_TOKEN", "");
            commit("SET_ROLES", []);
            commit("SET_PERMISSIONS", []);
            removeToken();
            resolve();
          .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);