微信小程序实现刷脸登录


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源码浅析 String部分(三)之HTML字符串处理
Jan 15 Javascript
JavaScript版TAB选项卡效果实例
Aug 16 Javascript
Node.js中的事件驱动编程详解
Aug 16 Javascript
学习Angularjs分页指令
Jul 01 Javascript
es6的数字处理的方法(5个)
Mar 16 Javascript
node.js+jQuery实现用户登录注册AJAX交互
Apr 28 jQuery
在Vant的基础上实现添加表单验证框架的方法示例
Dec 05 Javascript
react+ant design实现Table的增、删、改的示例代码
Dec 27 Javascript
AngularJs中$cookies简单用法分析
May 30 Javascript
javascript中的数据类型检测方法详解
Aug 07 Javascript
javascript中可能用得到的全部的排序算法
Mar 05 Javascript
JavaScript 几种循环方式以及模块化的总结
Sep 03 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
ThinkPHP提交表单时默认自动转义的解决方法
2014/11/25 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
优化Python代码使其加快作用域内的查找
2015/03/30 Python
python七夕浪漫表白源码
2019/04/05 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
python实现双色球随机选号
2020/01/01 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
Aosom西班牙:家具在线商店
2020/06/11 全球购物
销售员岗位职责范本
2014/02/03 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
药店采购员岗位职责
2014/09/30 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
转变工作作风心得体会
2016/01/23 职场文书
python小程序之飘落的银杏
2021/04/17 Python
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python
MySQL 5.7常见数据类型
2021/07/15 MySQL
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
Python Django项目和应用的创建详解
2021/11/27 Python
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android