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



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

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

谢谢! -安德烈亚斯

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

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

最新更新