From dd630955260df73f7c79f5e1b63147e587870cbc Mon Sep 17 00:00:00 2001 From: SauceyRed Date: Wed, 9 Jul 2025 07:27:16 +0200 Subject: [PATCH] feat: add check for email verification requirement and redirect if needed in auth middleware --- middleware/auth.global.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/middleware/auth.global.ts b/middleware/auth.global.ts index 2a9b752..421c156 100644 --- a/middleware/auth.global.ts +++ b/middleware/auth.global.ts @@ -2,7 +2,21 @@ export default defineNuxtRouteMiddleware(async (to, from) => { console.log("to.fullPath:", to.fullPath); const loading = useState("loading"); const accessToken = useCookie("access_token").value; - if (["/login", "/register"].includes(to.path)) { + const apiBase = useCookie("api_base").value; + const { fetchInstanceStats } = useApi(); + + console.log("[AUTH] instance url:", apiBase); + if (apiBase && !Object.keys(to.query).includes("special") && to.path != "/verify-email") { + const user = await useAuth().getUser(); + const stats = await fetchInstanceStats(apiBase); + console.log("[AUTH] stats:", stats); + console.log("[AUTH] email verification check:", user?.email && !user.email_verified && stats.email_verification_required); + if (user?.email && !user.email_verified && stats.email_verification_required) { + return await navigateTo("/register?special=verify_email"); + } + } + + if (["/login", "/register"].includes(to.path) && !Object.keys(to.query).includes("special")) { console.log("path is login or register"); const apiBase = useCookie("api_base"); console.log("apiBase gotten:", apiBase.value);