Hubot:如何让用户在各种集成中保持登录状态?

Hubot: how to keep users Logged-in in various integrations?

我正在构建一个 hubot,它使用用户的访问令牌与 Github、Trello 和 Jenkins 集成。 用户必须使用 oauth 进行身份验证才能接收访问令牌。我收到令牌,对其进行加密并将其存储在 mongoDB 中。 当用户请求某些东西时,hubot 必须使用用户的令牌调用特定的 API(即 https://api.github.com/user/repos)。因此,hubot 必须从 mongoDB 中检索用户的令牌,对其进行解密并在请求中使用它。每次用户从 API..

中询问内容时,上述过程(关于检索令牌)都会进行

所以我想问的是,每次用户提出要求时,是否有办法避免此过程。有什么办法让他们保持登录状态吗?类似于浏览器的快速会话。快速会话的问题是我必须使用 cookie,我猜这对于 hubot 是不可能的或非常困难的。 我正在考虑使用redis大脑。这是个好主意吗?治安怎么样?

谢谢! -安德烈亚斯

您可以在内存中缓存令牌以避免每次都询问数据库。 流程是:

  • 检查缓存中是否存在令牌
  • 如果令牌存在 return 它
  • 否则从数据库中获取令牌,将其存储到缓存中
  • return令牌