为什么我会收到 [next

编程入门 行业动态 更新时间:2024-10-04 01:20:52

为什么<a href=https://www.elefans.com/category/jswz/34/1770553.html style=我会收到 [next"/>

为什么我会收到 [next

我最近从 next-auth 4.19 更新到 4.22.1.

更新之前,我的代码运行良好。

我有一个 API 路由,在那个代码中,我有一个简单的:

export default async function handler(req, res) {

    if (req.method === 'POST') {

        //first, check if they're logged in.
console.log("test54646");        
        const session = await getSession({ req });
console.log("test789987977");        

    ...
    
    //return a JSON object.

在更新之前,代码工作完成(它返回一个 JSON 对象)。

更新后报错:

test54646
[next-auth][error][CLIENT_FETCH_ERROR]
 undefined {
  error: {},
  url: 'http://localhost:3000/api/auth/session',
  message: undefined
}
test789987977

getSession({req}) 好像报错了?

奇怪的是,如果我直接在浏览器中点击 URL: http://localhost:3000/api/auth/session

工作正常。我的浏览器显示了它应该返回的 JSON 对象。

我在以下位置查找了此错误的文档:

它只是说我必须配置 NEXTAUTH_URL 环境变量。

所以我进入 .env.local,并设置: NEXTAUTH_URL=http://localhost:3000

我仍然有错误。

谁能解释一下如何解决这个问题?我真的很想升级到 4.22,因为新的 update() 和 refresh() 功能:

谢谢。

回答如下:

我找到了解决方案:

原来,如果它在服务器上执行,你使用 getServerSession(),但如果你在客户端,你使用 getSession()。我猜它在 4.19 中在服务器端使用 getSession() 工作正常,但在 4.22.1 中,它给出了错误。文档说在服务器端使用 getSession() 仍然可以,但它不再适用于我。

资料来源: https://next-auth.js/configuration/nextjs#unstable_getserversession

请参阅标题为“在 API 路由中”的部分

更多推荐

为什么我会收到 [next

本文发布于:2024-05-30 19:09:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770823.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:我会

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!