import type { NextAuthConfig } from "next-auth" export const authConfig = { pages: { signIn: "/login", error: "/login", }, callbacks: { authorized({ auth, request: { nextUrl } }) { const isLoggedIn = !!auth?.user const pathname = nextUrl.pathname const publicPaths = ["/login", "/register", "/api/auth"] const isPublic = publicPaths.some( (path) => pathname === path || pathname.startsWith("/api/auth/") ) // 已登录用户在登录/注册页时重定向到首页 if (isLoggedIn && (pathname === "/login" || pathname === "/register")) { return Response.redirect(new URL("/", nextUrl)) } // 访问受保护页面必须已登录 if (!isLoggedIn && !isPublic) { return false } return true }, jwt({ token, user }) { if (user?.id) { token.id = user.id } return token }, session({ session, token }) { if (session.user && token.id) { session.user.id = token.id as string } return session }, }, providers: [], } satisfies NextAuthConfig