CouchDB:用户登录时触发事件

CouchDB:用户登录时触发事件,couchdb,Couchdb,用例 复制收件箱或此处引用的“空闲用户免费”: 在每个用户的数据库CouchDB体系结构中,最好在用户登录时只触发用户数据库与“收件箱”或“主”数据库之间的复制,这样就不会因为一直在非活动数据库上运行连续复制而浪费资源。此外,在我的应用程序设计中,我希望删除/归档非活动用户的数据库,并且只有在他们长期缺席后登录时才恢复/创建它 问题 看起来会话数据库不支持在新会话发生时监视的更改API。我唯一能想到的是使用文档更新处理程序更新用户文档上的“last_login”时间戳,然后观察用户数据库上的更改

用例

复制收件箱或此处引用的“空闲用户免费”:

在每个用户的数据库CouchDB体系结构中,最好在用户登录时只触发用户数据库与“收件箱”或“主”数据库之间的复制,这样就不会因为一直在非活动数据库上运行连续复制而浪费资源。此外,在我的应用程序设计中,我希望删除/归档非活动用户的数据库,并且只有在他们长期缺席后登录时才恢复/创建它

问题

看起来会话数据库不支持在新会话发生时监视的更改API。我唯一能想到的是使用文档更新处理程序更新用户文档上的“last_login”时间戳,然后观察用户数据库上的更改。我不喜欢这种方法,因为它意味着在客户端添加自定义逻辑

问题:


有没有CouchDB API用于在用户登录时触发事件?

没有这样的API。CouchDB目前有三种类型的auth:Basic、Cookie、OAuth(+Facebook-via-plugin)。可能是,如果可以为Cookie和OAuth发出这样的事件,但不能为Basic发出这样的事件,因为它只是一个常规请求,具有针对某个url的特殊头凭证。换句话说,即使会话资源将在用户登录时引发一些事件,也可以绕过这种逻辑

不久前,我们曾试图解决同一个问题,但最终决定,它毫无价值,也无法解决我们的实际问题:我们仍然遇到了这样一种情况:用户是匿名的,而用户是已知的


另外,您仍然可以解析CouchDB日志,在某些情况下引发事件,并将它们传递给redis或MQ服务进行进一步处理,但要小心磁盘空间的迅速耗尽

+1谢谢Kxepal。我假设目前没有可用的内容,但我将保留此问题,以防发生变化。顺便说一句,为什么不创建约?我想我会的!在访问新会话和旧会话不再有效时,轮询/u会话/u更改将非常好。