使用TTL Expiry在数据库中存储会话。

时间:2013-08-11 05:10:55

标签: mongodb scala

约束:

  • 负载平衡环境,会话需要在服务器之间保持不变。
  • OAuth 2.0提供程序/身份验证,快速创建/刷新令牌。

在数据库中存储会话/令牌是合乎逻辑的举措。

  1. 这是标准做法吗?
  2. 这是最佳做法吗?

1 个答案:

答案 0 :(得分:1)

您可以像db.sessions.ensureIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } )一样创建TTL index on a collection。这将创建一个元素TTL等于一小时的集合。一个小时后,Mongo将自动删除过时的条目。也支持复制!

我不太了解在DB中存储会话(我正在使用为我处理会话的应用程序服务器),但我知道一些简单的框架(比如python的bottle或flask)会使用这种做法。