我目前正在开发一个Next.js应用程序,其中的app目录中有一个布局组件.在该组件中,我有一个导航栏客户端组件.我正在try 实现注销功能,在该功能中,单击导航栏上的按钮应该会使用服务器端路由将用户重定向到原始页面.然而,它并没有像预期的那样起作用.
当我单击注销按钮时,服务器日志(log)确认正在呼叫该路由,并且我得到了一个"Status:200OK"响应,但没有发生重定向.
以下是该路由的代码片段:
import { createRouteHandlerClient } from '@supabase/auth-helpers-nextjs';
import { cookies } from 'next/headers';
import { NextResponse } from 'next/server';
export const dynamic = 'force-dynamic';
export async function POST(request: Request) {
const requestUrl = new URL(request.url);
const supabase = createRouteHandlerClient({ cookies });
await supabase.auth.signOut();
console.log("Salir sesion ruta llamada");
// Log the origin to the console
console.log("Origin URL:", requestUrl.origin);
return NextResponse.redirect(`${requestUrl.origin}/`, {
// a 301 status is required to redirect from a POST to a GET route
status: 301,
});
}
我已经验证了原始URL,确保了正确的HTTP方法,并判断了其他常见问题,但我仍然遇到这个问题.
有没有人遇到过类似的问题,或者有没有人对可能出现的问题有什么建议?如有任何帮助,将不胜感激!谢谢!