如何避免在使用Auth0获取Next.js 13服务器组件上的用户信息时出现警告消息

vqlkdk9b  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(81)

我正在尝试将具有Auth0身份验证的Next.js应用程序移动到新的应用程序路由器。我理解服务器组件不能写入cookie的局限性,但我得到了一个令人困惑的消息。
我的理解是,如果我需要在服务器组件上获取用户信息,我需要使用'@auth0/nextjs-auth0'中的'getSession'函数,这对客户端组件不可用。
但是,每次我调用它时,服务器控制台都会记录以下消息(未标记为错误或警告):"nextjs-auth0 is attempting to set cookies from a server component"的值。
我不想设置任何cookie,只想获取用户信息。谁能帮助我理解为什么这个对'getSession'的调用会使组件设置cookie?另外,如果我不是真的要设置cookie,忽略此消息是否安全?
先谢了。

**添加代码:**完整的解决方案有点复杂,但此代码说明了我的问题。这是一个简单的SSR组件,它从服务器会话中获取用户名(如Auth0的格式中所指定的):

import { getSession } from '@auth0/nextjs-auth0';

export default async function Profile() {
    const session = await getSession();

    return (
    <div>
        HELLO {session?.user?.name}
    </div>
    )
}

字符串
在上面的代码中,每次调用getSession时,服务器控制台都会发出消息"nextjs-auth0 is attempting to set cookies from a server component"
我没有明确地尝试设置cookie,只是获取用户的信息。我想知道为什么会发生这种情况,以及忽略该消息的影响是什么。
再次,提前感谢任何帮助。

x6h2sr28

x6h2sr281#

只要您不尝试自己手动设置cookie,就可以安全地忽略警告消息。一个贡献者在4天前修复了这个问题:https://github.com/auth0/nextjs-auth0/pull/1328
要解决此问题,请更新库。没有必要做任何其他事情。

相关问题