mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-10-02 08:29:21 +00:00
refactor(auth): 重构登录逻辑和验证码处理
- 将Promise回调改为async/await语法 - 优化验证码获取和显示逻辑 - 移除不必要的防抖处理 - 简化登录成功后的跳转逻辑 - 添加验证码加载状态防止重复请求 - 改进验证码输入框的样式和交互
This commit is contained in:
@@ -15,7 +15,7 @@ export const useUserStore = defineStore("user", () => {
|
||||
const userInfo = ref<UserInfo | undefined>(getUserInfo());
|
||||
|
||||
// 账号密码登录
|
||||
const login = (data: LoginFormData) => {
|
||||
const login = async (data: LoginFormData) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
AuthAPI.login(data)
|
||||
.then((data: LoginResult) => {
|
||||
@@ -30,49 +30,39 @@ export const useUserStore = defineStore("user", () => {
|
||||
};
|
||||
|
||||
// 微信基础授权登录
|
||||
const loginWithWxCode = (code: string) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
AuthAPI.loginByWxMiniAppCode(code)
|
||||
.then((data: LoginResult) => {
|
||||
setAccessToken(data.access_token);
|
||||
resolve(data);
|
||||
})
|
||||
.catch((error: any) => {
|
||||
console.error("微信授权登录失败", error);
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
const loginWithWxCode = async (code: string) => {
|
||||
try {
|
||||
const data = await AuthAPI.loginByWxMiniAppCode(code);
|
||||
setAccessToken(data.access_token);
|
||||
return data;
|
||||
} catch (error: any) {
|
||||
console.error("微信授权登录失败", error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
// 微信手机号授权登录
|
||||
const loginWithWxPhone = (data: WxLoginData): Promise<any> => {
|
||||
return new Promise((resolve, reject) => {
|
||||
AuthAPI.loginByWxMiniAppPhone(data)
|
||||
.then((result: LoginResult) => {
|
||||
setAccessToken(result.access_token);
|
||||
resolve(result);
|
||||
})
|
||||
.catch((error: any) => {
|
||||
console.error("微信手机号登录失败", error);
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
const loginWithWxPhone = async (data: WxLoginData): Promise<any> => {
|
||||
try {
|
||||
const result = await AuthAPI.loginByWxMiniAppPhone(data);
|
||||
setAccessToken(result.access_token);
|
||||
return result;
|
||||
} catch (error: any) {
|
||||
console.error("微信手机号登录失败", error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
// 获取用户信息
|
||||
const getInfo = () => {
|
||||
return new Promise((resolve, reject) => {
|
||||
UserAPI.getCurrentUserInfo()
|
||||
.then((data) => {
|
||||
setUserInfo(data);
|
||||
userInfo.value = data;
|
||||
resolve(data);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("获取用户信息失败", error);
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
const getInfo = async () => {
|
||||
try {
|
||||
const userInfo = await UserAPI.getCurrentUserInfo();
|
||||
setUserInfo(userInfo);
|
||||
return userInfo;
|
||||
} catch (error) {
|
||||
console.error("获取用户信息失败", error);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
// 登出
|
||||
@@ -88,7 +78,6 @@ export const useUserStore = defineStore("user", () => {
|
||||
clearTokens(); // 清除本地的 token
|
||||
Storage.remove(USER_INFO_KEY); // 清除用户信息缓存
|
||||
userInfo.value = undefined; // 清空用户信息
|
||||
|
||||
// 跳转到登录页面
|
||||
uni.reLaunch({
|
||||
url: "/pages/login/index",
|
||||
@@ -99,7 +88,6 @@ export const useUserStore = defineStore("user", () => {
|
||||
// 判断用户信息是否完整
|
||||
const isUserInfoComplete = (): boolean => {
|
||||
if (!userInfo.value) return false;
|
||||
|
||||
return !!(userInfo.value.username && userInfo.value.avatar);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user