From fd73bb39be8f5fb7fa2319562d5b09e8064940e7 Mon Sep 17 00:00:00 2001 From: yml Date: Sun, 24 May 2026 23:00:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E9=9C=80=E8=A6=81=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E5=AE=9E=E5=90=8D=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/router/index.ts | 9 +++++--- frontend/src/views/account/RealnameView.vue | 23 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 23d96f3..80dafb7 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -140,7 +140,7 @@ const router = createRouter({ path: "/seller/listings/create", name: "seller-listing-create", component: () => import("@/views/seller/SellerListingCreateView.vue"), - meta: { requiresAuth: true }, + meta: { requiresAuth: true, requiresRealname: true }, }, { path: "/seller/handoffs", @@ -253,18 +253,21 @@ router.beforeEach(async (to) => { if (to.meta.requiresRealname) { const session = useSessionStore(); + const loginPath = to.path.startsWith("/m") ? "/m/login" : "/login"; + const realnamePath = to.path.startsWith("/m") ? "/m/realname" : "/realname"; + if (session.realnameStatus !== "verified") { try { await session.loadMe(); } catch { if (!localStorage.getItem("access_token")) { - return { path: "/m/login", query: { redirect: to.fullPath } }; + return { path: loginPath, query: { redirect: to.fullPath } }; } } } if (session.realnameStatus !== "verified") { - return { path: "/m/realname", query: { redirect: to.fullPath } }; + return { path: realnamePath, query: { redirect: to.fullPath } }; } } diff --git a/frontend/src/views/account/RealnameView.vue b/frontend/src/views/account/RealnameView.vue index 87286a6..d80c33d 100644 --- a/frontend/src/views/account/RealnameView.vue +++ b/frontend/src/views/account/RealnameView.vue @@ -1,6 +1,7 @@