gpt4 book ai didi

javascript - 如何实现安全且同步的客户端到服务器连接

转载 作者:搜寻专家 更新时间:2023-11-01 00:36:06 25 4
gpt4 key购买 nike

我正在努力理解应该如何实现 pouchDB 交互。假设我想要一个具有同步和身份验证功能的离线优先应用程序,我是否需要实现一个中间人(例如 Node 服务器)以确保我的主服务器凭据受到保护,因为客户端上有一个带有 new PouchDB('name', ' https://username:password@server/dbname ') 我对主数据库的信任被暴露了。连接到 Node 服务器并决定是否允许访问会更好吗?

enter image description here

这将如何完成?我可以使用 auth 处理与服务器的直接连接并且它是安全的吗?或者是否需要中间人来确保安全。

如果需要中间人,您是否需要实现一种 api,即

//client
const db = new Pouch('days')
db.sync(remote)

//server
app.get('/db/days', (res, req) => // do some pouch stuff for each db)

https://github.com/pouchdb-community/pouchdb-authentication

最佳答案

稍微简化一下,如果您的应用程序由应用程序“主”数据库支持,并且它使用一组凭据运行,则您需要一个中间层:然后您需要将所有用户的数据多路复用到一个数据库中。

由 CouchDB/Cloudant 支持的应用程序通常使用“每个用户一个数据库”模式,这意味着每个应用程序用户都有自己的数据库和自己的凭据,这意味着很多事情在概念上变得更简单,并且可能不需要中间层。

请注意,如果您打算满足数百万用户的需求,“每个用户一个数据库”模式需要一些考虑才能很好地扩展。

在 Cloudant 上,您还可以使用 API key 来定义访问权限。

如果您想要 db-per-user 模式的简单性而没有(某些)缺点,您可以从 Cloudant Envoy (https://github.com/cloudant-labs/envoy) 中汲取一些灵感——一个多路复用用户数据的瘦代理到单个数据库中,同时仍然向外呈现每个用户的数据库 API 表面。免责声明:我是 Envoy 的作者之一。

关于javascript - 如何实现安全且同步的客户端到服务器连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51557256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com