Files
mwitnessing/middleware.ts
2024-02-22 04:19:38 +02:00

41 lines
1.1 KiB
TypeScript

import { withAuth } from "next-auth/middleware";
import { UserRole } from "@prisma/client";
// More on how NextAuth.js middleware works: https://next-auth.js.org/configuration/nextjs#middleware
export default withAuth({
callbacks: {
authorized({ req, token }) {
console.log("req", req);
// `/admin` requires admin role
if (req.nextUrl.pathname === "/examples/admin") {
return token?.userRole === "adminer"
}
if (req.nextUrl.pathname === "/cart" && token?.role === UserRole.ADMIN) {
// return NextResponse.redirect(new URL("/", req.url));
return true;
}
// if(req.nextUrl.pathname === "/cart"){
// return token?.role !== Role.ADMIN;
// }
// `/me` only requires the user to be logged in
return !!token
},
},
})
export const config = {
// matcher: ["/admin", "/me"]
matcher: ["/admin/:path*", "/me", "/cart, /"],
// callbackUrl: {
// name: `__Secure-next-auth.callback-url`,
// options: {
// sameSite: 'lax',
// path: '/',
// secure: true
// }
// },
}