微信小程序实现刷脸登录


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,有空研究学习下
Jan 25 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
Apr 11 Javascript
artDialog双击会关闭对话框的修改过程分享
Aug 05 Javascript
jquery购物车实时结算特效实现思路
Sep 23 Javascript
探讨jQuery的ajax使用场景(c#)
Dec 03 Javascript
javascript闭包的理解
Apr 01 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
Jun 26 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
Apr 21 Javascript
TinyMCE汉化及本地上传图片功能实例详解
May 31 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
Jan 19 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
Jan 16 Javascript
Vue为什么要谨慎使用$attrs与$listeners
Aug 27 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求两个目录的相对路径示例(php获取相对路径)
2014/03/27 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
JS array 数组详解
2009/03/22 Javascript
js文件包含的几种方式介绍
2014/09/28 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
JS实现提交表单前的数字及邮箱校检功能
2017/11/13 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
Python常用的爬虫技巧总结
2016/03/28 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
python模块之paramiko实例代码
2018/01/31 Python
python使用生成器实现可迭代对象
2018/03/20 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
Python实现12306火车票抢票系统
2019/07/04 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
采购意向书范本
2014/03/31 职场文书
六年级情感作文之500字
2019/10/23 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
Python制作春联的示例代码
2022/01/22 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python