middleware.ts 966 B

123456789101112131415161718192021222324252627282930313233
  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: [
  24. "/((?!api|static|_next|manifest.json|favicon.ico|robots.txt|sw.js|apple-touch-icon.png|android-chrome-.*\\.png|images|icons|sitemap.xml).*)",
  25. ],
  26. };