Simple Comment是一个适用于任何网站的评论平台。免费、灵活、开源、私有且可扩展。
请参阅演示:https://simple-comment.netlify.app
注意:审核工具尚不充分。当用户发表评论时,没有任何通知,也没有任何方式在批准之前对其进行审核。如果您喜欢这个项目并希望看到它在特定的时间表上进一步发展,请与我联系。否则,这个项目还在路上,只是走在慢路上。
最低限度的功能已启动并正在运行!
Access-Control-Allow-Origin
响应.env
变量Referer
header 和topicId
必须正确映射Origin
必须位于Access-Control-Allow-Origin
列表中简单评论可以在与您的网站相同的服务器上运行,也可以在单独的跨域服务器上运行
简单评论必须通过https 提供:
请遵循这些说明。如果有任何不清楚的地方,请创建一个新问题
example.env
复制到相同的项目根目录并将其重命名为.env
.env
中,输入您自己的(组成或随机生成的)这些条目的秘密值(即替换每行=
右侧的所有内容)。.env
中添加适当的DB_CONNECION_STRING
Environmental Variables
下单击Edit Variables
按钮.env
中的每个条目添加所有变量的键和相应的值IS_CROSS_SITE
,如果评论系统托管在其自己的域中,则添加值true
;如果是同一域,则添加值false
。<script src="[path-to]/simple-comment.js" defer></script>
( src
必须指向simple-comment.js
文件)<div id="simple-comment-display"></div>
simple-comment.js
文件上传到网站的脚本文件夹Refused to connect to 'api/auth' because it violates the following Content Security Policy directive: connect-src 'self'
https://<your-comment-app>.netlify.app
添加到connect-src
旁边的内容安全策略标头(qv https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers /内容安全策略/connect-src)Access to fetch at 'https://<your-comment-app>.netlify.app/.netlify/functions/' from origin '<your-website>' has been blocked by CORS policy...
<your-website>
添加到.env
中的ALLOW_ORIGIN
键并作为 Netlify 环境变量login.html
页面并.env
文件中的SIMPLE_COMMENT_MODERATOR_ID
和SIMPLE_COMMENT_MODERATOR_PASSWORD
值登录默认堆栈使用 Netlify + MongoDB作为后端,并使用基于最小fetch
的客户端作为前端,但只要测试通过并且 API 符合 Open API 3 架构文件,它就可以轻松适应使用任何技术堆栈
您可以按照以下说明获取自己的免费云中 MongoDB
假设有一个类 UNIX 环境,例如 Ubuntu。
nvm install
npm install -g yarn
yarn install
yarn run build
yarn run test
yarn run test:e2e
sudo systemctl start mongod
(qv Linux)yarn run start
API 规范由 Open API 3 格式的 simple-comment-openapi3.json 文件描述,旨在与任何后端、前端和识别系统互换
这是简单评论 API端点的概述
/comment
comment
是用户为回复其他comment
或topic
而发布的文本,呈现这些回复是该项目存在的唯一原因!
评论端点用于创建、读取、更新和删除(CRUD)单个评论。所有评论都必须有一个父级,即它回复的内容,无论是topic
还是comment
/topic
主题是一种特殊的评论,默认情况下只能由管理员用户创建,并形成一个用于回复评论的组织存储桶。它是一种根注释,因此没有父级
/topic 端点处理这些根注释的 CRUD。 /topic
的 GET 操作将获取主题列表,而/topic/{topicId}
上的 GET 操作将获取回复该主题及其后代的所有评论
/user
默认情况下,评论可以由匿名用户发布,但根据政策,简单评论确实有一个最小的识别方案,以便选择这样做的评论者可以在发布后控制自己的评论
/auth
Auth 是身份验证和识别方案的端点。用户将其用户名和密码提交到身份验证端点,并接收 JSON Web 令牌 (JWT),该令牌将他们验证为该用户以进行其他 CRUD 操作
/verify
返回登录用户id或401
policy
是一个包含键值对的对象,它控制简单评论的行为方式,例如确定最大评论长度或普通用户是否可以删除自己。
{
isGuestAccountAllowed : boolean , // if true, a visitor can post anonymously using a guest account. if false, only authenticated users can comment.
canFirstVisitCreateTopic : boolean , // if a discussion does not exist for a page, shall it be created when visited for the first time, or does admin create all topics?
canGuestCreateUser : boolean , // can a user with guest credentials create (their own) user profile? if 'canPublicCreateUser' is set to 'true' this setting is ignored
canGuestReadDiscussion : boolean , // can a user with guest credentials browse and read discussions? if 'canPublicReadDiscussion' is set to 'true' this setting is ignored
canGuestReadUser : boolean , // can a user with guest credentials view user profiles? if 'canPublicReadUser' is true, this setting is ignored
canPublicCreateUser : boolean , // can a user with no credentials create (their own) user profile?
canPublicReadDiscussion : boolean , // can a user with no credentials browse and read discussions?
canPublicReadUser : boolean , // can an anonymous visitor view any user's profile?
canUserDeleteSelf : boolean , // can a user delete their own profile?
maxCommentLengthChars : number , // Attempting to post a comment longer than this number of characters will be rejected by the API
}
此处未列出简单注释的解决方案有 34 个。几乎所有这些都比 Simple Comment 更成熟,如果您不是专门寻找无服务器、开源、自托管的解决方案,我建议您考虑其中一个。下面列出了它与简单评论的优缺点。如果列出需要信任,则意味着使用该服务需要对公司的信任,因为他们将向您的用户提供您无法控制且无法轻松检查的闭源代码;此外,用户数据将保存在他们控制的服务器上。该列表基于公共文档,而不是经验。如果有任何不正确或遗漏的内容,请告诉我。