login接口:

public function login(){ // 上传文件路径 $dir = "./Uploads/temp/"; if(!file_exists($dir)){ mkdir($dir,0777,true); } $upload = new \Think\Upload(); $upload->maxSize = 2048000 ;// 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $upload->savepath = ''; $upload->autoSub = false; $upload->rootPath = $dir; // 设置附件上传根目录 // 上传单个文件 $info = $upload->uploadOne($_FILES['file']); if(!$info) {// 上传错误提示错误信息 echo json_encode(array('error'=>true,'msg'=>$upload->getError()),JSON_UNESCAPED_UNICODE); }else{// 上传成功 获取上传文件信息 $file = $dir . $info['savepath'].$info['savename']; $image = base64_encode(file_get_contents($file)); $client = $this->init_face(); $options['liveness_control'] = 'NORMAL'; $options['max_user_num'] = '1'; $ret = $client->search($image,'BASE64','student',$options); // echo json_encode($ret,JSON_UNESCAPED_UNICODE); // exit; if($ret['error_code']==0){ $user = $ret['result']['user_list'][0]; $no = $user['user_id']; $score = $user['score']; if($score>=95){ $data = M('student')->where("no = '{$no}'")->find(); $data['score'] = $score; // $data['name'] = json_decode($data['name'],true); // $data['sex'] = json_decode($data['sex'],true); echo '识别成功' . json_encode($data,JSON_UNESCAPED_UNICODE); }else{ echo '识别失败' . $data['score']; } } } }

然后进行前台设计

<camera device-position="{{device?'back':'front'}}" flash="off" binderror="error" style="width: 100%; height: 300px;"></camera> <view class="weui-cells__title" >开关</view> <view class="weui-cells weui-cells_after-title"> <view class="weui-cell weui-cell_switch"> <view class="weui-cell__bd">切换摄像头</view> <view class="weui-cell__ft" > <switch bindtap="devicePosition" /> </view> </view> </view>
<button type="primary" bindtap="takePhoto">刷脸登录</button>

我们还可以控制相机的前后镜头

devicePosition() {
this.setData({ device: !this.data.device,
})
console.log("当前相机摄像头为:", this.data.device ? "后置" : "前置");
camera() { let { ctx, type, startRecord } = this.data; },
data: { src: null,
},

调用接口:takePhoto() { const ctx = wx.createCameraContext() ctx.takePhoto({ quality: 'high', success: (res) => { this.setData({ src: res.tempImagePath }) console.log(res) wx.uploadFile({ url: '', //仅为示例,非真实的接口地址 filePath: this.data.src, name: 'file', formData: { }, success: function (res) { // var data = res.data // var json = JSON.parse(data) console.log(res) wx.showModal({ title: "提示", content: res.data, showCancel: false, confirmText: "确定"}) } }) } }) },

转载于:https://www.cnblogs.com/mo3408/p/11089817.html

php实现微信小程序人脸识别登录相关推荐

  1. 微信小程序 - 人脸识别前端(二)拍照方式优化

    微信小程序 - 人脸识别前端(二)拍照方式优化 前文提及的识别方式较 low ,另外会留下识别痕迹,此处使用 <camera>组件进行优化. 前文地址:前文 参考文章:zhoujie-人脸 ...

  2. 小程序加入人脸识别_微信小程序 人脸识别登陆模块

    微信小程序---人脸识别登陆的实现 关键词:微信小程序 人脸识别 百度云接口 前言 这是一篇关于一个原创微信小程序开发过程的原创文章.涉及到的核心技术是微信小程序开发方法和百度云人脸识别接口.小程序的 ...

  3. [小记] 微信小程序 - 人脸识别前端(一)初体验

    微信小程序 - 人脸识别前端(一)初体验 记录尝试使用拍照模式进行人脸比对的过程-此方式有一定缺陷:调用系统摄像头,会保留照片于系统相册等 功能:人脸识别 + 打卡签到 说明:前端仅做拍照和转码操作等 ...

  4. 微信小程序人脸识别/采集改进版-支持人脸中心位置校验,人脸图片采集(速度更快),人脸搜索

    目录 1. 微信小程序人脸识别 1. 初始化人脸识别 2. 创建 camera 上下文 CameraContext 对象 3.获取 Camera 实时帧数据 4.人脸识别,使用前需要通过 wx.ini ...

  5. 小程序加入人脸识别_微信小程序+人脸识别

    为什么在原有的基础上增加人脸识别呢,因为我也厌倦了账号+密码的登录方式,所以想试一试在原有的功能上采用人脸识别登录. 识别过程借助于百度AI,服务器依旧是 SSM 框架.废话少说下面直接进入主题 服务 ...

  6. 微信小程序-人脸识别+输出人脸匹配信息

    1.在微信小程序创建 camera页面 camera.wxml代码为: <camera device-position="{{show}}" flash="off& ...

  7. 人工智能微信小程序人脸识别之人脸属性检测(附源码)

    随着人工智能和大数据分析技术越来越广泛,众多的生活场景都存在着这些技术的身影,比如像现在比较流行的人脸识别技术,其底层的算法实现的支撑,为众多的业务场景铺垫了基础,像支付宝的刷脸支付,本文是百度的人脸 ...

  8. 微信小程序---人脸识别(WX.STARTFACIALRECOGNITIONVERIFY)

    1.由于人脸核验功能涉及到用户的敏感.隐私信息,因此调用此接口的业务方,需要满足一定的条件,申请小程序的人脸识别api.开通小程序后台的接口权限入口后,开发者可以登录mp.weixin.qq.com小 ...

  9. 微信小程序人脸识别的实现

    首先我们创建一个前台的页面设计 <!--pages/camera/camera.wxml--> <camera device-position="{{device}}&qu ...

  10. 微信小程序—人脸识别

    1.首先你要有一个可以就行人脸识别的服务器,然后就是上传到百度云,百度云人脸识别的API接口全面升级到V3版本,并进行开放测试 2.wxml代码 <camera device-position= ...

最新文章

  1. MD5算法之C#程序
  2. 技术系列课|“主动降噪”到底有多厉害?
  3. 秒杀系统设计的 5 个要点:前端三板斧+后端两条路
  4. PP视频如何不允许WiFi下自动播放
  5. 基于JAVA+SpringMVC+Mybatis+MYSQL的企业计划管理系统
  6. Node实战之聊天室
  7. 在HTML中使用JavaScript
  8. 阿尔法狗 3 天走完人类千年棋史,被反超的我们该如何绝地求生?34 个开源项目告诉你!
  9. Intel的AVX2指令集解读
  10. pandas 批量修改列名_十分钟想搞定pandas?
  11. c++ 返回空对象_python中file对象的常用方法
  12. 除自身以外数组的乘积leetcode 238
  13. Python中用冒号表达式对列表切片
  14. 零基础入门学习汇编语言~基础知识~机器语言与汇编语言的产生及组成
  15. yxr:Makefile 简单样本
  16. IL汇编语言介绍(译)
  17. 库存管理中的 (s, S) 策略,K convex,K 凸
  18. 用python画分析曲线图
  19. 帮助 help 命令
  20. win10的高占用CPU的进程wsappx关闭指南+解决win10应用商店打不开

热门文章

  1. 日常投票评分:大多都是拉票
  2. TeaVM当前版本(0.7.0)还不支持传递字串参数
  3. UBUNTU安装,不建议最小安装,因为有很多问题
  4. LINUX SHELL中使用sed匹配某一行并替换这一行的内容
  5. 泰山游记:为何爬山后大腿前部很酸?
  6. 想起JDK1.4的死机事故
  7. Eclipse/NSight解决办法:unsolved inclusion stdio.h/map/string/queue/list
  8. SHELL下根据进程号得到内存,并截取为整数
  9. 管理感悟:计划是给谁看的
  10. MobaXterm 中文乱码问题