Auth0为传统的Pages Router提供了路由设置工具包。是否有办法在新的App Router上使用Auth0路由?
- 应用程序路由器(Next.js):https://nextjs.org/docs/app
- 添加动态API路由(Auth0):https://auth0.com/docs/quickstart/webapp/nextjs/01-login#add-the-dynamic-api-route
下面是Auth0 doc的示例代码:
// pages/api/auth/[...auth0].js
import { handleAuth } from '@auth0/nextjs-auth0';
export default handleAuth();
如果你把代码放在src/app/api/auth/[...auth0]/route.js
,这是App Router的一种方式,Next.js会显示以下错误:
- error Detected default export in '/…/app/api/auth/[...auth0]/route.ts'. Export a named export for each HTTP method instead.
- error No HTTP methods exported in '/…/app/api/auth/[...auth0]/route.ts'. Export a named export for each HTTP method.
因为App Router需要与express.js方式不同的接口。下面是一个新方法的示例:
// src/app/api/auth/[...auth0]/route.ts
import { NextResponse } from "next/server";
export async function GET() {
return NextResponse.json({ message: "Hello, World!" });
}
我正在寻找一个逃生舱口,直到他们正式支持的应用程序路由器。
1条答案
按热度按时间q1qsirdb1#
即使是在使用App Router的项目中,遗留的“pages/API”目录也可以工作。
https://community.auth0.com/t/auth0-does-not-work-with-next-js-app-router/106656/5
所以我只需要把路由器代码放在我的
src/
旁边的src/
,而不是下面。