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,