| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import { NextResponse } from "next/server";
- import type { NextRequest } from "next/server";
- import { getToken } from "next-auth/jwt";
- export async function handleAuth(
- request: NextRequest,
- response: NextResponse
- ) {
- const { pathname } = request.nextUrl;
- const restrictedPaths = [
- "/customer/login",
- "/customer/register"
- ];
- const isRestricted = restrictedPaths.some(path => pathname.startsWith(path));
- if (!isRestricted) {
- return response;
- }
- const token = await getToken({
- req: request,
- secret: process.env.NEXTAUTH_SECRET
- });
- if (!token) {
- return response;
- }
- /**
- * 创建 redirect response
- */
- const redirectResponse = NextResponse.redirect(new URL("/",request.url));
- /**
- * 复制之前 response 的 cookies
- *
- * 保留 currency cookie
- */
- response.cookies.getAll().forEach(cookie => {
- redirectResponse.cookies.set(cookie);
- });
- return redirectResponse;
- }
|