【问题标题】:intercept data changes and alter/validate from a server拦截数据更改并从服务器更改/验证
【发布时间】:2012-06-26 02:25:29
【问题描述】:

我正在研究一种解决方案,以拦截来自我们的 node.js 服务器的数据更改,并在它们存储/同步到其他客户端之前验证/更改它们。

有关如何使用当前代码库解决此问题的任何策略或建议?

目前,似乎唯一的选择是在同步操作后重写它。这意味着每个客户端可能会收到同步(包括服务器),然后服务器将重写数据并触发第二次同步。

为了帮助理解问题的背景,这似乎是满足我需求的理想策略:

  • 服务器获取客户端无法使用的特殊令牌/密钥(当安全出现时)
  • 服务器注册了一个依赖注入,如firebase.child('widgets').beforeSync(myCallback)
  • 客户端同步数据
  • 通知服务器回调
  • 服务器修改或验证数据
  • 如果有效,它会将其返回到 Firebase 以进行同步操作
  • 如果无效,则中止同步并返回一个错误并返回给客户端

【问题讨论】:

    标签: firebase


    【解决方案1】:

    感谢您分享您的想法!

    我们已经考虑过这种方法。您实际上可以通过结构化数据来模拟这种行为,以便有一个“未验证”树和一个“验证”树。

    客户端可以写入“未验证”树,服务器将监视它的更改。当发生更改时,它将验证数据,如果通过,它将复制到“已验证”树中,该树只能由服务器写入。当验证失败时,您也可以通过 Firebase 数据将错误传递回客户端。

    可以将此行为打包到提供您描述的行为的库中。我们也可以将其添加为核心功能,但我们仍在研究各种选项。

    【讨论】:

    • 安德鲁,感谢您抽出宝贵时间回复。我很乐意帮助为此开发一个库作为第三方或核心组件。 (附:各位男士应该考虑 something like this 以了解即将推出的功能!)
    • 如果你想开源你现在正在构建的东西的验证部分,我相信很多其他人都会喜欢它,我们会在时间允许的情况下帮助这个项目.否则,请在 Twitter 上关注我们(我们是 @Firebase),当我们在这里找到一些解决方案时,我们会发布推文。感谢您提供有关 Trello 的提示。我们的一个人实际上曾经在 Fog Creek 工作过 :) 我们已经收到了很多这样的请求,并将想出一些方法让社区了解我们的路线图。
    • 或者也许和解析一样,让我们​​在服务器端的js/lua中编码?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 2019-10-04
    • 1970-01-01
    相关资源
    最近更新 更多