我目前在Next.js中使用next-auth时遇到了在服务器端检索会话的问题。在客户端,当我使用useSession钩子时,我可以成功地获得会话对象。但是,当我尝试在服务器端使用getSession或getServerSession检索会话时,我经常收到undefined。
Next.js v13.4.6 NextAuth v4.22.1 React v18.2
export async function getServerSideProps({req, res}) {
const session = await getSession(req);
const serverSession = await getServerSession(request, response, authOptions);
return {
props: {
session,
serverSession
},
};
}
export default function App({ Component, pageProps: {session, serverSession,...pageProps } })
{
console.log(session); //undefined
console.log(serverSession); //undefined
return (
<SessionProvider session={session}>
<Component {...pageProps} />
</SessionProvider>
)
}
字符集
我已经仔细阅读了Next.js和next-auth提供的文档,但仍然无法解决这个问题。有没有人可以帮助我理解为什么我会遇到这个问题,并提供指导,说明如何在服务器端使用Next.js中的next-auth正确检索会话?
2条答案
按热度按时间gz5pxeao1#
这是
getSession
类型字符集
这是
GetSessionParams
:型
这是
CtxOrReq
型
如您所见,
getSession
接收一个对象。所以你应该型
zsbz8rwp2#
我设法解决了这个问题。
问题是.env文件没有正确配置。更新URL后,一切正常。