我想创建一个microblog
,所有人都可以阅读所有帖子,但只有所有者可以删除或编辑这些帖子。在gundb
中,每个人都可以编辑或删除帖子,在sea( gun.user())
中,我必须共享公共密钥,在sea中,如何获取所有用户的帖子并在时间轴上显示帖子?
我该如何用gundb创建它?
答案 0 :(得分:1)
每次创建用户时,公钥都可以与所有其他用户共享。 (有一个维护列表的超级用户),然后您的前端网站将遍历所有公用密钥,以获取人们发表的所有帖子并显示出来。这样,人们可以阅读所有帖子,但不能编辑。做到这一点的另一种方法是让超级用户运行一个过程,该过程不断将帖子索引并“复制”到自己的图形中,并且可以查看该图形。 (使其更加受保护) 这是一个非常高级的答案,但是使用gun.user()和枪芯结构可以实现所有这些目的。
答案 1 :(得分:1)
我一直在寻找关于gun
中有关数据隐私的问题的答案,这是我的答案:
<script src="https://cdn.jsdelivr.net/npm/gun/gun.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gun/sea.js"></script>
var gun = Gun()
gun.user().create('firstMicroblogAuthor', 'somePassword')
gun.user().auth('firstMicroblogAuthor', 'somePassword')
var post = {
title: 'First post',
text: 'Hello world!'
}
var author = gun.get('~@firstMicroblogAuthor') // There should be the same `username` in Step 2
gun
.user()
.get('posts')
.set(post) // At this step, we saved the post in a user schedule, which by default is only writable by the user
.once(function() {
this.get('author').put(author) // In this step, we link our post with the author (with our user)
gun.get('posts').set(this) // At this step, we save the post with the author installed in the main graph
})
gun.user().leave()
gun.user().create('secondMicroblogAuthor', 'somePassword')
gun.user().auth('secondMicroblogAuthor', 'somePassword')
gun
.get('posts') // Read posts from public graph
.once(function() {
this.get('text').put('Goodbye world!') // In this case, we will get an error, because this post was protected
})
答案 2 :(得分:0)
说todo-dapp是公共读取用户,仅写入是一种误导,实际上并不能为您提供查看其他用户文档的能力。
实际上,我长期以来一直不知道如何执行此操作的文档或示例,并且当您问开发人员时,您只是在逃避之后就面临逃避。
仅当有一种方法可以将用户的关注点彼此分开时,数据库才有用