feat(auth): ✨ 添加微信小程序授权登录功能
This commit is contained in:
@@ -30,18 +30,23 @@ const AuthAPI = {
|
||||
* @returns 登录结果
|
||||
*/
|
||||
login(data: LoginData): Promise<LoginResult> {
|
||||
const formData = {
|
||||
username: data.username,
|
||||
password: data.password,
|
||||
};
|
||||
|
||||
return publicRequest<LoginResult>({
|
||||
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<LoginResult> {
|
||||
return publicRequest<LoginResult>({
|
||||
url: `${AUTH_BASE_URL}/login/wechat`,
|
||||
method: "POST",
|
||||
data: { code },
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user