【问题标题】:Why doesn't my session load when switching locales?为什么切换语言环境时我的会话没有加载?
【发布时间】:2021-10-08 03:27:23
【问题描述】:

我将 Next.js 与 next-authnext-i18next 结合使用。

我使用useSession()(在我的_app.js 中使用next-auth/client 提供程序)来检查用户是否经过身份验证。一旦通过身份验证,导航会非常快速,并且当前会话会在页面呈现之间保持。直到我切换语言环境。切换后,loading 状态(来自useSession())切换到true

loading 状态保持真实,直到我关注另一个浏览器选项卡并返回。

我希望会话也将保留在语言环境之间,就像它保留在页面导航之间...

我不知道为什么会这样,也不知道这种行为是否正常。

要切换我使用的语言环境:

<Link href={router.asPath} locale="en">EN</Link>

【问题讨论】:

    标签: reactjs next.js next-auth next-i18next


    【解决方案1】:

    我遇到了同样的问题,尝试将 getSession 添加到 getServerSideProps。它对我有用。

        import { getSession } from 'next-auth/react'
    
        export async function getServerSideProps(context) {
          const session = await getSession(context)
          const authorized = !!session?.jwt
          return {
            props: { authorized },
          }
        }
    

    【讨论】:

      猜你喜欢
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      相关资源
      最近更新 更多