当我在生产模式下构建应用程序时出现了这个问题,它在开发模式下运行正常。但是当我在本地和Vercel上以生产模式运行时,刷新页面时会话令牌丢失。但是当我更改浏览器选项卡或打开另一个视图并返回时,页面被重新渲染,会话令牌被设置。
async jwt({ token, user, account, profile, isNewUser }) {
console.log("jwtCallback_Token", token);
console.log("jwtCallback_User", user);
console.log("jwtCallback_Account", account);
if (account && account.provider !== "cognito_google") {
token = { ...user }
}
else if (account?.provider === "cognito_google") {
token = {
id_token: account.id_token,
access_token: account.access_token,
refresh_token: account.refresh_token,
cust_exp: user?.exp,
picture: user?.picture,
email_verified: user?.email_verified,
email: user?.email,
sub: user?.sub,
name: user?.name
}
}
return token
},
async session({ session, token, user }) {
console.log("session-s", session);
console.log("session-t", token);
console.log("session-u", user);
session.access_token = token.access_token
return session
},
字符串
我正在使用客户端组件与const { data: session, status } = useSession()
并使用session?.access_token
检索令牌
我想在刷新后立即检索令牌,而不必先更改选项卡
1条答案
按热度按时间dly7yett1#
我设法修复了它,尽管使用useEffect和来自useSession钩子的update()不是最好的方法