sendRedirect — server-side redirect. navigateTo — universal redirect.
sendRedirect:
1// server/api/auth.ts2export default defineEventHandler((event) => {3 if (!isAuthenticated(event)) {4 return sendRedirect(event, "/login", 302)5 }6 return { user: "data" }7})
navigateTo:
1// middleware/auth.ts2export default defineNuxtRouteMiddleware((to) => {3 const auth = useAuth()4 if (!auth.value) {5 return navigateTo("/login")6 }7})
Key differences: