微信小程序实现刷脸登录


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 相关文章推荐
原型方法的不同写法居然会影响调试的解决方法
Mar 08 Javascript
使用js实现雪花飘落效果
Aug 26 Javascript
JS验证身份证有效性示例
Oct 11 Javascript
javascript面向对象程序设计(一)
Jan 29 Javascript
jQuery中slideUp 和 slideDown 的点击事件
Feb 26 Javascript
jQuery实现表格行上下移动和置顶效果
Jun 05 Javascript
Underscore之Array_动力节点Java学院整理
Jul 10 Javascript
Js利用console计算代码运行时间的方法示例
Sep 24 Javascript
利用nvm管理多个版本的node.js与npm详解
Nov 02 Javascript
JS实现将链接生成二维码并转为图片的方法
Mar 17 Javascript
vue 组件使用中的一些细节点
Apr 25 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
Nov 14 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实现备忘录模式(Memento)
2015/12/09 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
vue实现拖拽效果
2019/12/23 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
2020/07/20 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
详解python运行三种方式
2019/05/13 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
绩效专员岗位职责
2013/12/02 职场文书
婚礼证婚人证婚词
2014/01/13 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
详解用Python把PDF转为Word方法总结
2021/04/27 Python
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android
zabbix配置nginx监控的实现
2022/05/25 Servers