为啥切换语言环境时我的会话没有加载?
Posted
技术标签:
【中文标题】为啥切换语言环境时我的会话没有加载?【英文标题】:Why doesn't my session load when switching locales?为什么切换语言环境时我的会话没有加载? 【发布时间】:2021-10-08 03:27:23 【问题描述】:我将 Next.js 与 next-auth
和 next-i18next
结合使用。
我使用useSession()
(在我的_app.js 中使用next-auth/client
提供程序)来检查用户是否经过身份验证。一旦通过身份验证,导航会非常快速,并且当前会话会在页面呈现之间保持。直到我切换语言环境。切换后,loading
状态(来自useSession()
)切换到true
。
loading
状态保持真实,直到我关注另一个浏览器选项卡并返回。
我希望会话也将保留在语言环境之间,就像它保留在页面导航之间...
我不知道为什么会这样,也不知道这种行为是否正常。
要切换我使用的语言环境:
<Link href=router.asPath locale="en">EN</Link>
【问题讨论】:
【参考方案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 ,
【讨论】:
以上是关于为啥切换语言环境时我的会话没有加载?的主要内容,如果未能解决你的问题,请参考以下文章