From 3006cba16e38359a51eb08e21764502d029543f7 Mon Sep 17 00:00:00 2001 From: "Ray.Hao" <1490493387@qq.com> Date: Mon, 29 Dec 2025 08:05:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(auth):=20:sparkles:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/auth.ts | 23 ++++++++++++++--------- src/pages/login/index.vue | 4 ++-- src/store/modules/user-store.ts | 20 ++++++++++++++++++-- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/src/api/auth.ts b/src/api/auth.ts index 109cdbd..c4c769c 100644 --- a/src/api/auth.ts +++ b/src/api/auth.ts @@ -30,18 +30,23 @@ const AuthAPI = { * @returns 登录结果 */ login(data: LoginData): Promise { - const formData = { - username: data.username, - password: data.password, - }; - return publicRequest({ url: `${AUTH_BASE_URL}/login`, method: "POST", - data: formData, - header: { - "Content-Type": "application/x-www-form-urlencoded", - }, + data: data, // 发送JSON格式的请求体 + }); + }, + + /** + * 微信Web授权登录 (使用code进行授权登录) + * @param code 微信授权码 + * @returns 登录结果 + */ + loginByWechat(code: string): Promise { + return publicRequest({ + url: `${AUTH_BASE_URL}/login/wechat`, + method: "POST", + data: { code }, }); }, diff --git a/src/pages/login/index.vue b/src/pages/login/index.vue index 64ccc9f..e2263ab 100644 --- a/src/pages/login/index.vue +++ b/src/pages/login/index.vue @@ -257,8 +257,8 @@ const handleWechatLogin = async () => { // 获取微信登录的临时 code const code = await getLoginCode(); - // 尝试使用微信授权登录接口 - const result: any = await userStore.loginWithWxCode(code); + // 在微信小程序环境下,使用小程序授权登录接口 + const result: any = await userStore.loginWithWxMiniAppCode(code); // 获取用户信息 await userStore.getInfo(); diff --git a/src/store/modules/user-store.ts b/src/store/modules/user-store.ts index db150f9..6f21e8d 100644 --- a/src/store/modules/user-store.ts +++ b/src/store/modules/user-store.ts @@ -24,8 +24,23 @@ export const useUserStore = defineStore("user", () => { }); }; - // 微信基础授权登录 + // 微信Web授权登录 const loginWithWxCode = (code: string) => { + return new Promise((resolve, reject) => { + AuthAPI.loginByWechat(code) + .then((data) => { + setAccessToken(data.accessToken); + resolve(data); + }) + .catch((error: any) => { + console.error("微信授权登录失败", error); + reject(error); + }); + }); + }; + + // 微信小程序授权登录 (仅使用code获取OpenID) + const loginWithWxMiniAppCode = (code: string) => { return new Promise((resolve, reject) => { AuthAPI.loginByWxMiniAppCode(code) .then((data) => { @@ -33,7 +48,7 @@ export const useUserStore = defineStore("user", () => { resolve(data); }) .catch((error: any) => { - console.error("微信授权登录失败", error); + console.error("微信小程序授权登录失败", error); reject(error); }); }); @@ -112,6 +127,7 @@ export const useUserStore = defineStore("user", () => { userInfo, login, loginWithWxCode, + loginWithWxMiniAppCode, loginWithWxPhone, logout, getInfo,