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