middleware.ts 943 B

12345678910111213141516171819202122232425262728293031
  1. // middleware.ts
  2. import { createI18nMiddleware } from "next-international/middleware";
  3. import { NextRequest, NextResponse } from "next/server";
  4. import { getSessionCookie } from "better-auth/cookies";
  5. const I18nMiddleware = createI18nMiddleware({
  6. locales: ["en", "fr"],
  7. defaultLocale: "en",
  8. urlMappingStrategy: "rewrite",
  9. });
  10. export async function middleware(request: NextRequest) {
  11. const response = I18nMiddleware(request);
  12. const searchParams = request.nextUrl.searchParams.toString();
  13. response.headers.set("searchParams", searchParams);
  14. if (request.nextUrl.pathname.includes("/dashboard")) {
  15. const session = getSessionCookie(request);
  16. if (!session) {
  17. return NextResponse.redirect(new URL("/", request.url));
  18. }
  19. }
  20. return response;
  21. }
  22. export const config = {
  23. matcher: ["/((?!api|static|_next|manifest.json|scripts/pixel.js|favicon.ico|robots.txt|service-worker\\.js|images|icons|sitemap.xml).*)"],
  24. };