stack/examples/middleware/src/middleware.tsx
2026-06-17 09:56:41 -07:00

23 lines
705 B
TypeScript

import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
import { hexclaveServerApp } from './hexclave';
export async function middleware(request: NextRequest) {
console.log('Running middleware on URL: ', request.url);
// fetch the user object, and redirect if not logged in
const user = await hexclaveServerApp.getUser();
if (!user) {
console.log('User in middleware is not logged in. Redirecting to sign-in page');
return NextResponse.redirect(new URL('/handler/sign-in', request.url));
}
console.log('User in middleware is logged in. ID: ', user.id);
return NextResponse.next();
}
export const config = {
matcher: '/protected/:path*',
};