feat: 添加 vue-sonner,优化反馈
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
// app/stores/auth.ts - 用户登录状态管理
|
||||
import { defineStore } from "pinia";
|
||||
import { toast } from "vue-sonner";
|
||||
|
||||
import { authClient } from "@/utils/auth";
|
||||
|
||||
@@ -79,6 +80,7 @@ export const useAuthStore = defineStore("auth", () => {
|
||||
const result = await authClient.signIn.email({ email, password });
|
||||
if (result.error) {
|
||||
error.value = "邮箱或密码错误";
|
||||
toast.error(error.value);
|
||||
return false;
|
||||
}
|
||||
// 直接使用登录响应中的用户数据,无需重复请求 get-session
|
||||
@@ -87,9 +89,11 @@ export const useAuthStore = defineStore("auth", () => {
|
||||
result.data.user as Parameters<typeof _setUserFromResult>[0]
|
||||
);
|
||||
}
|
||||
toast.success("登录成功");
|
||||
return true;
|
||||
} catch {
|
||||
error.value = "登录失败,请重试";
|
||||
toast.error(error.value);
|
||||
return false;
|
||||
} finally {
|
||||
loading.value = false;
|
||||
@@ -104,6 +108,7 @@ export const useAuthStore = defineStore("auth", () => {
|
||||
const result = await authClient.signUp.email({ name, email, password });
|
||||
if (result.error) {
|
||||
error.value = "注册失败,邮箱可能已被使用";
|
||||
toast.error(error.value);
|
||||
return false;
|
||||
}
|
||||
if (result.data?.user) {
|
||||
@@ -111,9 +116,11 @@ export const useAuthStore = defineStore("auth", () => {
|
||||
result.data.user as Parameters<typeof _setUserFromResult>[0]
|
||||
);
|
||||
}
|
||||
toast.success("注册成功");
|
||||
return true;
|
||||
} catch {
|
||||
error.value = "注册失败,请重试";
|
||||
toast.error(error.value);
|
||||
return false;
|
||||
} finally {
|
||||
loading.value = false;
|
||||
@@ -125,6 +132,7 @@ export const useAuthStore = defineStore("auth", () => {
|
||||
await authClient.signOut();
|
||||
user.value = null;
|
||||
initialized.value = false;
|
||||
toast.success("已退出登录");
|
||||
};
|
||||
|
||||
/** 刷新当前用户的 apiToken;成功后同步更新 store */
|
||||
@@ -139,12 +147,15 @@ export const useAuthStore = defineStore("auth", () => {
|
||||
}>("/api/user/refresh-token", { method: "POST" });
|
||||
if (res.code === 0 && res.data?.apiToken && user.value) {
|
||||
user.value = { ...user.value, apiToken: res.data.apiToken };
|
||||
toast.success("Token 已刷新");
|
||||
return true;
|
||||
}
|
||||
error.value = res.msg || "刷新失败";
|
||||
toast.error(error.value);
|
||||
return false;
|
||||
} catch {
|
||||
error.value = "刷新失败,请重试";
|
||||
toast.error(error.value);
|
||||
return false;
|
||||
} finally {
|
||||
loading.value = false;
|
||||
|
||||
Reference in New Issue
Block a user