微信小程序实现刷脸登录


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 相关文章推荐
Prototype最新版(1.5 rc2)使用指南(1)
Jan 10 Javascript
Flash对联广告的关闭按钮讨论
Jan 30 Javascript
JavaScript DOM学习第六章 表单实例
Feb 19 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
Jan 18 Javascript
使用jquery实现简单的ajax
Jul 08 Javascript
jQuery截取指定长度字符串代码
Aug 21 Javascript
JQUERY简单按钮轮换选中效果实现方法
May 07 Javascript
Javascript实现的Map集合工具类完整实例
Jul 31 Javascript
解决js图片加载时出现404的问题
Nov 30 Javascript
jQuery树插件zTree使用方法详解
May 02 jQuery
Vue中使用vee-validate表单验证的方法
May 09 Javascript
jQuery实现表格隔行换色
Sep 01 jQuery
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调试函数和日志记录函数分享
2015/01/31 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
javascript闭包传参和事件的循环绑定示例探讨
2014/04/17 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
2015/02/27 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
使用python实现ANN
2017/12/20 Python
Python+matplotlib绘制不同大小和颜色散点图实例
2018/01/19 Python
基于python实现学生信息管理系统
2019/11/22 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
Django全局启用登陆验证login_required的方法
2020/06/02 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
Python用Jira库来操作Jira
2020/12/28 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
介绍一下Java的安全机制
2012/06/28 面试题
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
施工安全生产承诺书
2014/05/23 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
中学总务处工作总结
2015/08/12 职场文书