我做了一个Spotify克隆使用它的API和使用Next JS中间件来实现重定向条件,这是检查用户是否有令牌或没有,如果没有重定向到登录页面.
但由于某种原因,它返回我空白白色屏幕。
下面是middleware.ts
文件的代码
import { getToken } from "next-auth/jwt";
import { NextResponse, NextRequest } from "next/server";
export async function middleware(request: NextRequest) {
const token = await getToken({ req: request, secret: process.env.JWT_SECRET });
const { pathname } = request.nextUrl;
if (pathname.includes("/api/auth") || token) {
return NextResponse.next();
}
if (!token && pathname !== '/login') {
return NextResponse.rewrite(new URL('/login', request.url));
}
}
文件夹结构
请帮帮我。你可以在这里参考完整的代码https://github.com/dipesh2508/Vibes
1条答案
按热度按时间z9zf31ra1#
我看了一下你的中间件,似乎你正在阻止所有的JS资源,包括
_next
文件夹,这是加载应用程序本身所必需的。请相应地修改您的条件,它将工作。对于初学者,您可以在下面使用。
请注意,您可能需要排除您的公共资产以及相同的。例如,
favicon.ico
。