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);