微信小程序实现刷脸登录


Posted in Javascript onMay 25, 2018

微信小程序本身并不具有刷脸登录的功能,实现时需要借助百度云的人脸识别的sdk,当然现在百度云是暂时免费的,我们可以登录自行下载使用。

下载地址

后台代码我们使用thinkPHP框架实现,将下载好的sdk导入thinkPHP框架中,就可以写方法使用了。

我们需要将图片上传到自己服务器和百度云人脸库中。

public function login(){ 
    $dir="./***";//自己定义的文件名 
    if(!file_exists($dir)){ 
      mkdir($dir,0777,true); 
    } 
    $upload = new \Think\Upload();// 实例化上传类 
    $upload->maxSize = 3145728 ;// 设置附件上传大小 
    $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 
    $upload->rootPath = $dir; // 设置附件上传根目录 
    $upload->savepath=''; 
    // 上传单个文件 
    $info = $upload->uploadOne($_FILES['file']); 
    if(!$info) {// 上传错误提示错误信息 
      return $this->ajaxReturn(array('error'=>true,'msg'=>$upload->getError())); 
    }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',$this->face_group(),$options); 
 
      if($ret['error_code']==0){ 
        $user = $ret['result']['user_list'][0]; 
        $no = $user['user_id']; 
        $score = $user['score']; 
 
        if(!empty($no)){ 
          $data = M('student')->field('no,name,sex')->where("no='{$no}'")->find(); 
 
          if($data){ 
            //查到此学号 
            $data['score'] = $score; 
            echo json_encode($data,JSON_UNESCAPED_UNICODE); 
          }else{ 
            //本地库不存在此学号 
            echo "本地数据库没有该学生,百度云库信息:个人信息:{$no},分值:{$score}"; 
          } 
 
        } 
 
      }else{ 
        echo "活体检测失败,".json_encode($ret,JSON_UNESCAPED_UNICODE); 
      } 
    } 
}

里面的search方法是sdk的方法

public function search($image, $imageType, $groupIdList, $options=array()){ 
 
    $data = array(); 
     
    $data['image'] = $image; 
    $data['image_type'] = $imageType; 
    $data['group_id_list'] = $groupIdList; 
 
    $data = array_merge($data, $options); 
    return $this->request($this->searchUrl, json_encode($data), array( 
      'Content-Type' => 'application/json', 
    )); 
}

前三个参数是必填的,后面参数根据自己的实际情况选即可。

微信小程序中需要使用camera组件以及wx.createCameraContext()方法,之后在js调用后台代码即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
另类调用flash无须激活的方法
Dec 27 Javascript
清华大学出版的事半功倍系列 javascript全部源代码
May 04 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
Jul 13 Javascript
javascript正则表达式之search()用法实例
Jan 19 Javascript
angularJS提交表单(form)
Feb 09 Javascript
jQuery使用drag效果实现自由拖拽div
Jun 11 Javascript
JavaScript中split与join函数的进阶使用技巧
May 03 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
Sep 11 Javascript
vue小图标favicon不显示的解决方案
Sep 19 Javascript
vue基础之模板和过滤器用法实例分析
Mar 12 Javascript
浅谈JS中几种轻松处理'this'指向方式
Sep 16 Javascript
通过js实现压缩图片上传功能
Feb 25 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
May 25 #Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
May 25 #Javascript
JS简单生成由字母数字组合随机字符串示例
May 25 #Javascript
Webpack中雪碧图插件使用详解
May 25 #Javascript
使用javascript做在线算法编程
May 25 #Javascript
JS实现的汉字与Unicode码相互转化功能分析
May 25 #Javascript
浅析node.js的模块加载机制
May 25 #Javascript
You might like
PHP Smarty生成EXCEL文档的代码
2008/08/23 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
PHP7 弃用功能
2021/03/09 PHP
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
jquery中实现标签切换效果的代码
2011/03/01 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
jQuery Select下拉框操作小结(推荐)
2016/07/22 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
Javascript操作dom对象之select全面解析
2017/04/24 Javascript
React-Native使用Mobx实现购物车功能
2017/09/14 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
vue实现移动端图片上传功能
2019/12/23 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
Python编程中NotImplementedError的使用方法
2018/04/21 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
2019/11/15 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
Ray-Ban雷朋太阳眼镜英国官网:Ray-Ban UK
2019/11/23 全球购物
安全生产责任书范本
2014/04/15 职场文书
八一建军节演讲稿
2014/09/10 职场文书
第一节英语课开场白
2015/06/01 职场文书
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js
Nginx反向代理配置的全过程记录
2021/06/22 Servers
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers