From 0a26d58a3906b9e13946c7cb46fae51a0de98920 Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期一, 17 三月 2025 15:49:08 +0800
Subject: [PATCH] Merge branch 'dev' into dev_tides

---
 src/store/modules/user.js |   57 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 49 insertions(+), 8 deletions(-)

diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 54d35ca..71eefef 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -1,7 +1,8 @@
-import { login, logout, getInfo } from "@/api/login";
+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: {
@@ -50,6 +51,9 @@
           .then((res) => {
             setToken(res.token);
             commit("SET_TOKEN", res.token);
+            Vue.prototype.uploadHeader = {
+              Authorization: "Bearer " + res.token,
+            };
             resolve();
           })
           .catch((error) => {
@@ -57,7 +61,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) => {
@@ -93,12 +113,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);
@@ -114,6 +138,23 @@
         resolve();
       });
     },
+
+    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);
+          });
+      });
+    },
   },
 };
 

--
Gitblit v1.9.3