微信小程序实现刷脸登录


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 相关文章推荐
js 为label标签和div标签赋值的方法
Aug 08 Javascript
jquery ajax属性async(同步异步)示例
Nov 05 Javascript
使用Chart.js图表库制作漂亮的响应式表单
Oct 28 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
Nov 02 Javascript
Knockout自定义绑定创建方法
Dec 26 Javascript
微信小程序开发探究
Dec 27 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
Feb 19 Javascript
Node.js成为Web应用开发最佳选择的原因
Feb 05 Javascript
vue超时计算的组件实例代码
Jul 09 Javascript
小程序图片长按识别功能的实现方法
Aug 30 Javascript
解决vue 项目引入字体图标报错、不显示等问题
Sep 01 Javascript
Vue使用Proxy监听所有接口状态的方法实现
Jun 07 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 和 XML: 使用expat函数(三)
2006/10/09 PHP
简化php模板页面中分页代码的解析
2009/02/06 PHP
C# Assembly类访问程序集信息
2009/06/13 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
php随机抽奖实例分析
2015/03/04 PHP
php并发加锁示例
2016/10/17 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
PHP 实现缩略图
2021/03/09 PHP
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
jQuery判断数组是否包含了指定的元素
2015/03/10 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
python中base64加密解密方法实例分析
2015/05/16 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
python中使用正则表达式的连接符示例代码
2017/10/10 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
详解Html5 Canvas画线有毛边解决方法
2018/03/01 HTML / CSS
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
职工运动会感言
2014/02/07 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
2016年校长新年寄语
2015/08/17 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
Python保存并浏览用户的历史记录
2022/04/29 Python