Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

建议拓展匿名评论的功能 #33

Open
hoofs opened this issue Feb 28, 2018 · 13 comments
Open

建议拓展匿名评论的功能 #33

hoofs opened this issue Feb 28, 2018 · 13 comments

Comments

@hoofs
Copy link

hoofs commented Feb 28, 2018

问题描述 Issue Description

建议拓展匿名评论的功能

怎么了 What

目前评论方式分为匿名评论与注册登录评论两种,而匿名评论的形式无法区分评论者身份。因此我建议拓展匿名评论的功能,使之能够使用传统的邮箱+用户名的形式来评论,同时也可以接入gravatar的服务。
经我浅薄的思考,认为现在的评论方式有以下几点弊端:

  • 想要以个人身份而不是匿名用户的身份进行评论必须要注册登录。
    wildfire的主要受众应该是使用静态博客程序的个人博主们。从评论者的角度出发,对一个个人博客网站进行评论还要单独注册,这无疑增加了使用负担,同时也很可能会担心密码安全。应该会表现为评论数稀少或者主要是匿名评论。
  • 注意到注册用户的信息是储存在各站自己的PaaS中,这也就意味着即使对使用同一评论系统的不同站点也需要重复注册登录的步骤才能以个人身份评论。
    关于这点或许可以通过搭建api服务来解决,把用户信息放入api的数据库中,评论信息储存在各站的PaaS中。

以上便是我个人的一点不成熟的小建议。

其他的话 Other Comment

最后必然要感谢开发者的辛勤付出,谢谢。: )

@cheng-kang
Copy link
Owner

@hoofs 感谢提出建议。

具体讨论之前

之前的 issue 模板好像出了点问题,需要麻烦你配合一下。

为了让所以的 issue 统一格式,请参照 issue 模板 编辑一下这个 issue 的内容。(可能当前的 issue 模板不是特别适合建议类型的内容,但是应该还是可以凑合使用,比如把 重现 这一部分给删掉。)

感谢配合!!

针对你的建议

  1. 邮箱 + 用户名 的评论模式。我昨天在看到你的评论后和 @mrliaocn 进行了讨论,觉得可以通过下一个版本的插件系统来实现。等到下一个版本正式发布之后,如果有兴趣可以参与这个插件的开发。

    ...这无疑增加了使用负担,同时也很可能会担心密码安全。应该会表现为评论数稀少或者主要是匿名评论。

    这的确是很充分的理由。如果在新版本发布后,没有其他人来开发这个插件的话,我们会在开发完基础的插件后进行这个插件的开发。

  2. 单点用户验证(这个词我不一定用得准确)。我们在之前考虑过这个问题,也做过尝试。之所以放弃了,一是 Firebase野狗 好像不是很适合做这件事情;二是我们不希望 wildfire 是一个服务,我们希望它本身仅仅是一个“使用其他服务来实现其数据交互、用户验证等功能”的插件。这样它会有更多的灵活性,而且我们团队也少了维护服务的压力。

    但是我们的确意识到目前在每一个使用 wildfire 的网站都要重新注册的情况不够理想。不过这个问题可能会在 1. 实现之后得到部分解决。可能也会在目前紧要的任务完成后重新考虑这个问题。

@cheng-kang
Copy link
Owner

cheng-kang commented Mar 28, 2018

@hoofs 我正在写 邮箱 + 用户名 的匿名评论插件,功能已经写完了,但总感觉看起来不够舒服。

有什么样式和交互上的建议吗?(忽略邮箱输入框 icon 没显示的问题😂需要重新构建一下 icon 包)

我的一些想法:

  1. 因为有这个输入框,或许可以把登录注册按钮取消掉,或者藏到更深的地方。

  2. 添加更多提示信息,让用户明确知道需要填写资料才能发布评论。

  3. 个人信息填写并保存后,除非内容更改,不然“更新”按钮变暗(别这么显眼)。甚至可以添加一个编辑按钮,点编辑后才进入表单状态;否则是以文字形式展示已保存的信息。

  4. 甚至是不是不应该再把这类评论当成匿名评论处理,因为里面包含实名信息。这样的话头像应该点亮,并且要允许自定义头像?

截图

screen shot 2018-03-29 at 12 11 45 am

@mrliaocn
Copy link
Collaborator

mrliaocn commented Apr 1, 2018

匿名用户在点击发送按钮以后,如果没有设置过(存在cookie中),则跳出来一个弹出层,可以在里面填写邮箱和昵称。这个弹出层就是点击「匿名用户」的那个弹出层,用户可以随时修改,但修改以后,历史评论中的邮件和昵称不跟随变化。

@cheng-kang
Copy link
Owner

@mrliaocn

现在是这个样子,默认不显示按钮,hover 的时候显示。

邮箱和昵称存在 cookie 里面,每次加载会先从 cookie 里找。

screen shot 2018-04-01 at 12 35 55 pm screen shot 2018-04-01 at 12 36 13 pm

@cheng-kang
Copy link
Owner

@mrliaocn 不过我现在在考虑是不是要完全取消注册登录……

假如没有一个“单点”的用户管理的话,在一个博客里注册账号确实显得有些多余。

但是没有注册登录,数据读写权限又是个问题。

@charles9056
Copy link

charles9056 commented Apr 3, 2018

@cheng-kang
1.你好,请问有没有可能做成登录并发送。就是新用户第一次访问时,输入昵称和邮箱(比如a@b.com)、评论内容,最后点击登录并发送按钮,点击后这时wildfire后台做的事为:把邮箱识别为新用户注册的邮箱,并把密码也识别为该邮箱(a@b.com),保留信息并评论成功。

当该用户第二次访问时,从 cookie 里得到邮箱和昵称,此时无需登录按钮,用户直接输入评论内容,最后点击发送按钮,点击后这时wildfire后台做的事为:进行用户验证,对比正确后评论成功。

上述办法从本质上来讲就是:取消了匿名用户,让所有用户都成为了 登录用户,即可以赞、踩评论,
删除自己的评论,举报包含不恰当言论的评论,更新个人资料等操作。这样登录用户数据读写权限而匿名用户就没有。

当然可以保留匿名评论的入口,虽说方便,但个人不建议,因为要防止垃圾评论,就还需要引入Akismet垃圾留言过滤系统,这些事很麻烦。
2.所以建议:设置一个users/${uid}/show_anonymous节点,然后值为:true orfalse.

@cheng-kang
Copy link
Owner

cheng-kang commented Apr 3, 2018

@charles9056

  1. 如果全部改成邮箱 + 昵称方式发送评论的话,那么就不存在登录了。因为公开的邮箱和昵称的组合并不能作为唯一身份识别的标志,用户名+私有密码才是。

    因此如果全部改成邮箱+昵称方式的话,用户将没有权限删除自己的评论、无法取消点赞以及无法更新个人信息。

    我最近一直在考虑是不是要全面取消登录、注册,但是还没有想到好的解决上面所说的用户权限的问题的办法。

  2. 你建议的“在第一次访问时,填写完信息后发送按钮标题显示为保存个人信息并发送”这一点,我觉得对于用户体验可能会有一些帮助,因为他们在第一次发表评论的时候不需要点击两个按钮(保存个人信息+发送)。

@charles9056
Copy link

charles9056 commented Apr 4, 2018

@cheng-kang

用户名+私有密码才能作为唯一身份识别的标志。

你好,那把昵称作为用户名,把邮箱作为私有密码不就行了吗,或者把用户输入的邮箱作为 用户名+私有密码一样的字符,然后不公开,公开的只有昵称。这样呢?

这样就不是 邮箱 + 用户名 的匿名评论插件,而是全新的登录评论方式,即:新用户注册,登录,评论,都一键完成,这样能否实现?
参考:
https://www.hypercomments.com/en/forum
https://livere.com/city-demo
www.disqus.com

@cheng-kang
Copy link
Owner

@charles9056 邮箱没办法作为密码。一是邮箱很容易找到。二是评论插件本身是鼓励交流的,所以邮箱需要公开。

我看了一下你给的三个参考链接,反而说明了如果要“实名”(这里的实名指注册过唯一账号),必须有独立的密码。

@charles9056
Copy link

charles9056 commented Apr 4, 2018

@cheng-kang
注意到 新用户和匿名评论时, hypercomments 只需 昵称和email ,可以仿照它的做法;而 livere 则多了一个独立的密码。

@cheng-kang
Copy link
Owner

@charles9056 参考上面我发的截图的话,hypercomments 无非是将输入昵称和邮箱放到了弹出窗口里面,其他逻辑是一样的。在 UX 方面确实有值得参考的地方,不过并不能解决我们上面讨论的问题。

我们上面讨论的问题是:如何在取消繁复的注册登录保留用户身份认证以使得用户仍可以对自己发布的内容进行操作

综合我们讨论的内容,还没有找到一个可以满足上述要求的方案。

另外,再回顾一下为什么讨论这个问题:

因为 wildfire 并不是一个服务平台,只是一个插件,所以目前没办法像你提到的三个参考那样提供 SSO 服务,导致用户需要在每一个使用 wildfire 的网站单独注册账号(并且也不好实现其他的第三方登录,因为第三方登录都需要有一个回调的页面。)。而这种用户体验很不好,如 @hoofs 所提出的,(1)过程(相对)繁杂,(2)个人密码暴露给站主的安全隐患担忧。我们希望能提升用户体验。这才是“改变登录方式”背后的关键问题。

考虑到重要性,我觉得用户隐私更重要,所以还是要取消掉目前的注册、登录方式,或者至少把它变成一个优先级偏低的可选项。

因此我觉得现在更可行的方案是:

  1. 完全删除注册、登录
  2. 采用提供昵称和邮箱的形式发布评论
  3. 评论内容将不可被修改(其实传统的评论就是这样的)
  4. 点赞也不可被取消(考虑更改成 Medium.com 的鼓掌)

@charles9056
Copy link

charles9056 commented Apr 4, 2018

@cheng-kang
这本质上就是多了个昵称的匿名评论,不过也只好这样了。

如何在取消繁复的注册登录后保留用户身份认证以使得用户仍可以对自己发布的内容进行操作。

就像从关闭着门的冰箱中拿一瓶水。https://valine.js.org/i18n/ 也是不能修改评论内容的。

请问要修改评论内容必须登录吗?
不过最终还是希望你们做大,变成类似 disqus 或多说的服务:)

@cheng-kang
Copy link
Owner

@charles9056

只有登录才能验证用户是某条评论的发布者,验证了才能允许他进行操作嘛。

wildfire 的设定就是一个“匿名”评论,我们不希望做深入的身份验证(比如邮箱验证,实名认证)。所以目前就算用户用一个符合邮箱格式的假邮箱注册也没有问题。注册登录解决的不是实名问题,而是评论归属权的问题。

如何实现评论归属权验证,我得再好好想想再继续讨论。

😄 谢谢你。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants