这是我第一次使用NextAuth和Nextjs13的主要更改,我不知道如何在我的项目中设置nextauth。我读过文档这里
不知何故不知道如何为nextjs 13设置它。我如何使它工作?...nextauth.ts文件设置
import NextAuth from "next-auth"
import FacebookProvider from "next-auth/providers/facebook";
export const authOptions = {
// Configure one or more authentication providers
providers: [
FacebookProvider({
clientId: process.env.FACEBOOK_CLIENT_ID,
clientSecret: process.env.FACEBOOK_CLIENT_SECRET
}),
],
}
export default NextAuth(authOptions)
到目前为止,错误:类型'string‘不能分配到输入'string’。类型'undefined‘不能分配到输入’string‘. to (2322) oauth.d.ts(83,5):预期的类型来自在'OAuthUserConfig'上声明的属性'clientId’。
layout.tsx页面
import { Outfit } from "@next/font/google";
import "../styles/globals.css";
import Header from "./components/Header/Header";
import { SessionProvider } from "next-auth/react";
// Outfit Font
const outfit = Outfit();
export default function RootLayout({
children,
pageProps: { session, ...pageProps },
}: {
children: React.ReactNode;
}) {
return (
<SessionProvider session={session}>
<html>
<head></head>
<body lang="en" className={outfit.className}>
<Header />
{children}
</body>
</html>
</SessionProvider>
);
}
在布局文件中,它告诉我在类型{pageProps: ReactNode;}上不存在属性‘ReactNode’。
我希望能有任何帮助来建立这个系统。
发布于 2022-11-19 13:34:02
我认为,您应该创建providers.js,比如:
'use client'
import { useState } from 'react'
import { SessionProvider } from 'next-auth/react'
export const Providers = ({ children }) => {
return (
<SessionProvider>
{children}
</SessionProvider>
)
}
然后用RootLayout包起来:
import './globals.css'
import { Providers } from './providers'
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<head />
<body><Providers>{children}</Providers></body>
</html>
)
}
https://stackoverflow.com/questions/74246463
复制相似问题