From 38ab5a14aaa12932f4a99b7eb826f1d9bbf49082 Mon Sep 17 00:00:00 2001 From: npmrun <1549469775@qq.com> Date: Sun, 12 Apr 2026 21:31:32 +0800 Subject: [PATCH] feat(app): minimal login register profile pages Made-with: Cursor --- app/middleware/auth.ts | 8 +++++ app/middleware/guest.ts | 9 ++++++ app/pages/login.vue | 41 +++++++++++++++++++++++++ app/pages/me.vue | 81 +++++++++++++++++++++++++++++++++++++++++++++++++ app/pages/register.vue | 56 ++++++++++++++++++++++++++++++++++ 5 files changed, 195 insertions(+) create mode 100644 app/middleware/auth.ts create mode 100644 app/middleware/guest.ts create mode 100644 app/pages/login.vue create mode 100644 app/pages/me.vue create mode 100644 app/pages/register.vue diff --git a/app/middleware/auth.ts b/app/middleware/auth.ts new file mode 100644 index 0000000..6a62b71 --- /dev/null +++ b/app/middleware/auth.ts @@ -0,0 +1,8 @@ +export default defineNuxtRouteMiddleware(async (to) => { + const fetch = useRequestFetch(); + try { + await fetch("/api/me", { credentials: "include" }); + } catch { + return navigateTo({ path: "/login", query: { redirect: to.fullPath } }); + } +}); diff --git a/app/middleware/guest.ts b/app/middleware/guest.ts new file mode 100644 index 0000000..7346c7b --- /dev/null +++ b/app/middleware/guest.ts @@ -0,0 +1,9 @@ +export default defineNuxtRouteMiddleware(async () => { + const fetch = useRequestFetch(); + try { + await fetch("/api/me", { credentials: "include" }); + return navigateTo("/me"); + } catch { + return; + } +}); diff --git a/app/pages/login.vue b/app/pages/login.vue new file mode 100644 index 0000000..5caecdc --- /dev/null +++ b/app/pages/login.vue @@ -0,0 +1,41 @@ + + + + + 登录 + + + 邮箱 + + + + 密码 + + + {{ errorMsg }} + 登录 + + 没有账号?注册 + + diff --git a/app/pages/me.vue b/app/pages/me.vue new file mode 100644 index 0000000..a8a556f --- /dev/null +++ b/app/pages/me.vue @@ -0,0 +1,81 @@ + + + + + 个人资料 + + 邮箱:{{ data.user.email }} + (已验证) + (未验证) + + {{ patchError }} + + + 姓名 + + + + 年龄 + + + 保存 + + + 退出登录 + + + diff --git a/app/pages/register.vue b/app/pages/register.vue new file mode 100644 index 0000000..51fc523 --- /dev/null +++ b/app/pages/register.vue @@ -0,0 +1,56 @@ + + + + + 注册 + + + 邮箱 + + + + 密码(至少 8 位) + + + + 姓名 + + + + 年龄 + + + {{ errorMsg }} + 注册并登录 + + 已有账号?登录 + +
{{ errorMsg }}
没有账号?注册
+ 邮箱:{{ data.user.email }} + (已验证) + (未验证) +
{{ patchError }}
+ 退出登录 +
已有账号?登录