我如何在会话状态下存储一个值使用nextjs与新的应用程序目录?



我正在使用新的app文件夹构建一个nextjs 13应用程序。用户可以登录到其他系统,然后链接到我的新应用程序,在标题或url中传递他们的刷新令牌。然后,我使用刷新令牌来获取访问令牌,并将这两个令牌存储在内存缓存服务器端中。。我需要能够检索用于每个用户的API调用的正确令牌。所有这些都可以在内存中进行,我不需要在会话长度之外持久化数据。

这样做的目的是保护令牌,因此只有GUID应该在客户端来回传递。令牌应该只存在于服务器端,只在API请求中使用。

我正在考虑使用next-auth和它的getServerSession方法。我也在考虑使用中间件,但文档说TODO (https://beta.nextjs.org/docs/middleware)。我仍然不能找到一个简单的会话存储用于服务器端。

是否有可能在每个用户会话中存储一个值,该值可以在服务器端访问以区分用户?或者我需要恢复到pages目录来实现这一点吗?

我很幸运地遵循了这篇博客文章,并使用cache函数使数据在查询的生命周期内跨所有服务器组件可用:https://prismic.io/blog/advanced-nextjs-server-context

然而,我仍然难以来回传递令牌给客户端。我决定为我的nextjs应用恢复到稳定的页面目录结构,并使用next-auth包。

相关内容