当前位置:   article > 正文

微信小程序图片与文字安全检测security.msgSecCheck和security.imgSecCheck_微信小程序msgseccheck

微信小程序msgseccheck

微信小程序线上版本涉及到内容发布评论等,就需要进行安全检测,否则官方会上传一些huang图等敏感信息,这样就对我们的小程序的运行非常的不友好。

微信小程序图片与文字安全检测security.msgSecCheck和security.imgSecCheck

一、security.msgSecCheck文字安全检测的使用

security.msgSecCheck | 微信开放文档 (qq.com)

由于我的项目使用的是云开发,所以我就演示下云函数中如何使用

  1. //index.js中
  2. //openid为用户的唯一标识,我是通过参数传递过来的。当然你也可以这样获取,更方便cloud.getWXContext().OPENID
  3. //text为要检测的值
  4. exports.main = async (event, context) => {
  5. const { openid, text } = event;
  6. try {
  7. const result = await cloud.openapi.security.msgSecCheck({
  8. openid,
  9. scene: 2,
  10. version: 2,
  11. content: text,
  12. });
  13. return result;
  14. } catch (err) {
  15. return err;
  16. }
  17. };
  1. //config.json中
  2. {
  3. "permissions": {
  4. "openapi": [
  5. "security.msgSecCheck"
  6. ]
  7. }
  8. }
  1. //js中
  2. wx.cloud.callFunction({
  3. name: "定义的云函数名",
  4. data: {
  5. openid: '用户的openid',
  6. text: '要检测的值',
  7. },
  8. })
  9. .then((checkTextRes) => {
  10. const resultSuggest = checkTextRes.result.result.suggest;
  11. if(resultSuggest === 'pass') {
  12. console.log('通过')
  13. }else {
  14. console.log('不通过')
  15. }
  16. });

非常的简单,官方也提供了详细的文档。

二、security.imgSecCheck图片安全检测的使用

HTTPS 调用 | 微信开放文档 (qq.com)

这个的使用就相对来说比较有点繁琐了,要考虑的东西很多

  1. //index.js中
  2. const cloud = require("wx-server-sdk");
  3. const axios = require("axios");
  4. cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); // 使用当前云环境
  5. // 云函数入口函数
  6. exports.main = async (event, context) => {
  7. let buffer = null;
  8. //通过这个请求拿到图片的arraybuffer流,因为检测图片使用的是arraybuffer
  9. await axios({
  10. method: "get",
  11. url: event.imgData, // imgData是刚才传过来的
  12. responseType: "arraybuffer",
  13. headers: { "Content-Type": "*" },
  14. }).then((res) => {
  15. buffer = res.data;
  16. });
  17. try {
  18. var result = await cloud.openapi.security.imgSecCheck({
  19. media: {
  20. contentType: "image/png",
  21. value: Buffer.from(buffer),
  22. },
  23. });
  24. return result;
  25. } catch (err) {
  26. return err;
  27. }
  28. };
  1. //config.json
  2. {
  3. "permissions": {
  4. "openapi": [
  5. "security.imgSecCheck"
  6. ]
  7. }
  8. }
  1. //js中
  2. wx.cloud
  3. .callFunction({
  4. name: "云函数名称",
  5. data: {
  6. //使用wx.cloud.CDN避免传输的图片过大
  7. imgData: wx.cloud.CDN({
  8. type: "filePath",
  9. filePath: '选择的图片的路径',
  10. }),
  11. },
  12. })
  13. .then((res) => {
  14. if (res.result.errCode === 87014) {
  15. wx.showToast({
  16. title: "图片可能违规,请仔细检查后再试!",
  17. icon: "none",
  18. duration: 5000,
  19. });
  20. } else {
  21. wx.showToast({
  22. title: "图片检测通过",
  23. icon: "none",
  24. duration: 1000,
  25. })
  26. }
  27. });

其实还挺简单的,就是细节比较多,当时做的时候踩了一堆坑,所以发一下,大家就避免少踩坑了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/623743
推荐阅读
相关标签
  

闽ICP备14008679号