如何在Next.js App Router上使用Auth0路由?

j0pj023g  于 2023-06-22  发布在  其他
关注(0)|答案(1)|浏览(146)

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!" });
}

我正在寻找一个逃生舱口,直到他们正式支持的应用程序路由器。

q1qsirdb

q1qsirdb1#

即使是在使用App Router的项目中,遗留的“pages/API”目录也可以工作。
https://community.auth0.com/t/auth0-does-not-work-with-next-js-app-router/106656/5
所以我只需要把路由器代码放在我的src/旁边的src/,而不是下面。

相关问题