代码之家  ›  专栏  ›  技术社区  ›  Refael

NextAuth全局使用会话

  •  0
  • Refael  · 技术社区  · 2 年前

    )

    我正在使用Next.js v.14和Next auth v.4.24。

    我正在遵循文档,因此我正在使用布局中包装的“SessionProvider”。

    当在页面或组件(例如“Header”)中使用它时,需要将它与“use client”一起转到客户端并导入“useSession”。

    我尽量避免把每个页面都变成一个客户端,只是为了检查会话是否存在。通常我会创建一个客户端组件,例如“themeToggle”,然后将其导入页面(服务器端)。是否可以对“useSession”的导入进行同样的操作,或者我必须将其全部转换到服务器端?

    顺便说一句…在下一个路由中,我使用jwt作为会话策略。

    任何简短代码的帮助都将不胜感激!

    0 回复  |  直到 2 年前
        1
  •  0
  •   Minn    2 年前

    您可以使用 getServerSession 或在v5中 auth 在服务器组件中。

    如果在根布局中使用此选项,则可以使用道具钻取将会话向下转发到其他组件,然后提供给任何会话提供程序 <SessionProvider session={session}> .

    然而,对于服务器操作,没有什么理由再在客户端跟踪您的会话了。我建议主要在服务器上使用它,并在必要时将其作为道具提供给客户端。