通过下一个身份验证的 JWT 回调或会话回调存储其他信息?(在下一个身份验证中保存 Patreon 层)



我正试图使用下一个认证与patreon api。登录&我们的工作很好,但我现在还想把用户层保存在某个地方——问题是在哪里?我正在考虑通过jwt回调将其直接放在jwt上,或者通过会话回调将其放在会话中。

我已经尝试将它添加到会话中,但它似乎真的减慢登录速度:

async session({ session, token, user }) {
session.access_token = token.access_token;
let tier = await getUserTier({ access_token: token.access_token });
session.tier = tier;
return session;
}

每次调用会话回调时,获取这些数据的效率也很低——这似乎很多。有什么办法可以加快这个检查等级的过程吗?有什么惯例可以保存这一层吗?

它自然地减慢了进程,因为除了默认情况下必需的网络流量之外,您还必须等待getUserTier请求。

我认为你有两个选择:

  1. 直接将用户层保存在数据库的user表中,然后您应该可以通过一个回调参数访问它。

  2. 在会话中根本不包含层,而只在您真正需要它的时候在客户端代码中获取它。

我想我会选择第二个选项,因为没有必要在会话中包含这些信息。如果你的论点是需要这些信息在你的应用程序无处不在,你仍然可以做请求的中央某处-像在布局组件-然后通过上下文或Redux商店或类似的(取决于你在你的应用程序中已经使用)提供信息

最新更新