我正在使用新的应用程序文件夹构建一个nextjs 13应用程序。用户可以登录到其他系统,然后链接到我的新应用程序,在标题或url中传递刷新令牌。然后,我使用刷新令牌来获取访问令牌,并将这两个令牌与新的GUID存储在内存缓存中 服务器端 .我需要能够检索用于API调用的正确令牌 每个用户 。所有这些都可以在内存中发生,我不需要将数据持久化超过会话的长度。
这样做的目的是保护令牌,以便只有GUID才能来回传递给客户端。令牌应仅存在于服务器端,仅用于API请求。
我正在考虑使用next auth及其getServerSession方法。我也在考虑使用中间件,但文档中说TODO( https://beta.nextjs.org/docs/middleware )。我似乎仍然找不到一个简单的会话存储用于服务器端。
是否可以在服务器端可访问的每个用户会话中存储一个值来区分用户?或者我需要恢复到pages目录才能实现这一点?
我很幸运地关注了这篇博客文章,并使用 cache 函数,使数据在查询的生存期内可在所有服务器组件中使用: https://prismic.io/blog/advanced-nextjs-server-context
cache
然而,我仍然很难将代币来回传递给客户。我决定为我的nextjs应用程序恢复到稳定的页面目录结构,并使用下一个auth包。