本文主要是介绍nextjs+supabase判断是否登录核心代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
import { NextRequest, NextResponse } from "next/server";
import { createClient } from '@/utils/supabase/server';export async function middleware(request: NextRequest) {const { pathname } = request.nextUrl;// 允许未认证用户访问 /login 页面if (pathname === '/login') {return NextResponse.next();}const supabase = createClient();const { data } = await supabase.auth.getSession();// 如果用户未认证,重定向到 /login 页面if (!data?.session?.user) {return NextResponse.redirect(new URL('/login', request.url));}// 如果用户访问根路径或 /home,重定向到 /dashboardif (pathname === "/" || pathname.includes("/home")) {return NextResponse.redirect(new URL('/dashboard', request.url));}// 对其他路径,继续请求处理return NextResponse.next();
}// Ensure the middleware is only called for relevant paths.
export const config = {matcher: [/** Match all request paths except for the ones starting with:* - _next/static (static files)* - _next/image (image optimization files)* - favicon.ico (favicon file)*/'/((?!_next/static|_next/image|favicon.ico).*)',],
};
这篇关于nextjs+supabase判断是否登录核心代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!