@xsprtd/nuxt-api
Version:
Nuxt API Authentication and Http Client
20 lines (19 loc) • 685 B
JavaScript
import { useApiOptions } from "../composables/useApiOptions.js";
import { useAuth } from "../composables/useAuth.js";
import { defineNuxtRouteMiddleware, navigateTo, createError } from "#app";
export default defineNuxtRouteMiddleware((to) => {
const { isLoggedIn } = useAuth();
if (isLoggedIn.value) {
return;
}
const options = useApiOptions();
const loginPath = options.redirect.login;
if (!isLoggedIn.value && loginPath) {
const redirect = { path: loginPath };
if (options.redirect.intendedEnabled) {
redirect.query = { redirect: to.fullPath };
}
return navigateTo(redirect, { replace: true });
}
throw createError({ statusCode: 403 });
});