你把_app.js放在app目录的哪里

NL3*_*294 4 authentication server-side-rendering next.js next-auth next.js13

next-auth(版本 4)的文档表明我们需要将服务提供者放入:

pages/_app.js
Run Code Online (Sandbox Code Playgroud)

我正在关注以下示例: https: //next-auth.js.org/getting-started/example

如果我使用实验性应用程序目录而不是 nextjs 13 中的页面目录,我们应该将 _app.js 文件放在哪里?

Yil*_*maz 5

不幸的是,您必须有两个实现。

在实验应用程序目录中,您必须包装根布局。

// app/provider.js

"use client";

import { SessionProvider } from "next-auth/react";

export default function Proiders({ children }) {
  return <SessionProvider>{children}</SessionProvider>;
}
Run Code Online (Sandbox Code Playgroud)

然后在根布局中

import Provider from "./provider";

export default function RootLayout({ children }) {
  return (
    <html>
      <head />
      <body>
        <Provider>{children}</Provider>
      </body>
    </html>
  );
}
Run Code Online (Sandbox Code Playgroud)

_app.js同样你也必须包裹

import { SessionProvider } from "next-auth/react"

export default function App({
  Component,
  pageProps: { session, ...pageProps },
}) {
  return (
    <SessionProvider session={session}>
      <Component {...pageProps} />
    </SessionProvider>
  )
}
Run Code Online (Sandbox Code Playgroud)

api 文件是同一目录。pages/api/auth/[...nextauth].js