WxComment评论组件接入评论内容安全检测

2021-01-19 12:15:06

记录下如何为小程序评论组件添加内容安全检测功能

最近打算为之前做的小程序增加评论功能,提交审核被拒,理由是存在信息安全风险

于是就需要修改 WxComment 组件增加检测功能了。

修改方法如下:

# 增加云函数

参照官方文档 (opens new window)增加内容检测云函数


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 云调用权限


{
    "permissions": {
        "openapi": [
            "security.msgSecCheck"
        ]
    }
}

package.json内容


{
  "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 文件

  1. 在 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;
    }
},
  1. bindFormSubmit 函数前增加 async 关键字,如下:

async bindFormSubmit(e)
  1. 修改 bindFormSubmit 函数,在判断内容长度的后面追加如下代码

let checkOk = await that.checkMsg(e.detail.value.comment_text);
if(!checkOk){
  wx.showToast({
    title: '内容含有违法违规内容',
    icon: 'none',
    duration: 2000
  })
  return;
}
  1. 项目本地设置中开启增强编译

# 内容检测测试

# 参考资料

本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0 许可协议。可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。

扫描下方二维码阅读当前文章

浏览器、微信扫码

评 论:

好文推荐
每天进步一点点~