16 lines
514 B
TypeScript
16 lines
514 B
TypeScript
export default defineNuxtRouteMiddleware(() => {
|
|
if (import.meta.server) return;
|
|
const token = localStorage.getItem("vmall.token");
|
|
let role: string | null = null;
|
|
try {
|
|
const raw = localStorage.getItem("vmall.user");
|
|
const user: unknown = raw ? JSON.parse(raw) : null;
|
|
if (user && typeof user === "object" && "role" in user && typeof user.role === "string") {
|
|
role = user.role;
|
|
}
|
|
} catch {
|
|
role = null;
|
|
}
|
|
if (!token || role !== "customer") return navigateTo("/login");
|
|
});
|