微信小程序实现刷脸登录


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 相关文章推荐
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
Oct 11 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
Aug 02 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
Apr 08 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
Dec 01 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
Jul 29 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
Oct 27 Javascript
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
微信小程序之蓝牙的链接
Sep 26 Javascript
vue.js项目打包上线的图文教程
Nov 16 Javascript
解决angularjs service中依赖注入$scope报错的问题
Oct 02 Javascript
JS实现计算小于非负数n的素数的数量算法示例
Feb 26 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
Sep 11 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+SqlServer实现分页显示
2006/10/09 PHP
php生成EAN_13标准条形码实例
2013/11/13 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
九种原生js动画效果
2015/11/11 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
Python实现全局变量的两个解决方法
2014/07/03 Python
python实现识别相似图片小结
2016/02/22 Python
Python提取网页中超链接的方法
2016/09/18 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
建筑设计学生的自我评价
2014/01/16 职场文书
招聘与培训专员岗位职责
2014/01/30 职场文书
12岁生日演讲稿
2014/05/14 职场文书
旅游节目策划方案
2014/05/26 职场文书
支行行长竞聘报告
2014/11/06 职场文书
父母教会我观后感
2015/06/17 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
python Django框架快速入门教程(后台管理)
2021/07/21 Python