import { ICustomerJwtPayload, IUserJwtPayload } from "@Front/Services/JwtService/JwtService"; import jwt_decode from "jwt-decode"; import { NextResponse } from "next/server"; import type { NextRequest } from "next/server"; export async function middleware(request: NextRequest) { // Get the JWT from the cookies const cookies = request.cookies.get("leCoffreAccessToken"); console.log("cookies", cookies) if (!cookies) return NextResponse.redirect(new URL("/login", request.url)); // Decode it const userDecodedToken = jwt_decode(cookies.value) as IUserJwtPayload; const customerDecodedToken = jwt_decode(cookies.value) as ICustomerJwtPayload; // If no JWT provided, redirect to login page console.log("decoded tokens", userDecodedToken, customerDecodedToken ) if (!userDecodedToken && !customerDecodedToken) return NextResponse.redirect(new URL("/login", request.url)); // If JWT expired, redirect to login page // const token = userDecodedToken ?? customerDecodedToken; // const currentDate = new Date(); // const time = currentDate.getTime(); // const now = Math.floor(time / 1000); // if (token.exp < now) { // console.log('token expired') // return NextResponse.redirect(new URL("/login", request.url)); // } return NextResponse.next(); } export const config = { matcher: [ "/client-dashboard/:path*", "/collaborators/:path*", "/customer/:path*", "/document-types/:path*", "/deed-types/:path*", "/folders/:path*", "/my-account/:path*", "/offices/:path*", "/roles/:path*", "/users/:path*", "/", ], };