记录下如何为小程序评论组件添加内容安全检测功能
最近打算为之前做的小程序增加评论功能,提交审核被拒,理由是存在信息安全风险
于是就需要修改 WxComment 组件增加检测功能了。
修改方法如下:
# 增加云函数
参照官方文档 增加内容检测云函数
代码语言:javascript复制const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
try {
const res = await cloud.openapi.security.msgSecCheck({
content: event.inputText,
})
return res
} catch (err) {
return err
}
}
注意在函数根目录增加 config.json 设置 security.msgSecCheck 云调用权限
代码语言:javascript复制{
"permissions": {
"openapi": [
"security.msgSecCheck"
]
}
}
package.json内容
代码语言:javascript复制{
"name": "msg_check",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"wx-server-sdk": "latest"
}
}
然后创建并部署云函数即可。
# 修改评论组件
找到 WxComment/component/WxComment/WxComment.js
文件
- 在 bindFormSubmit 方法前追加如下方法:
async checkMsg(content) {
try {
var res = await wx.cloud.callFunction({
name: 'msg_check',
data: {
content: content,
}
});
if (res.result.errCode == 0)
return true;
return false;
} catch (err) {
console.log(err);
return false;
}
},
- bindFormSubmit 函数前增加 async 关键字,如下:
async bindFormSubmit(e)
- 修改 bindFormSubmit 函数,在判断内容长度的后面追加如下代码
let checkOk = await that.checkMsg(e.detail.value.comment_text);
if(!checkOk){
wx.showToast({
title: '内容含有违法违规内容',
icon: 'none',
duration: 2000
})
return;
}
- 项目本地设置中开启增强编译
# 内容检测测试
# 参考资料
- 内容安全检测
- 小程序页面内容审核规范
- UGC类小程序运营攻略