微信小程序实现刷脸登录


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 和 Java 的区别浅析
Jul 31 Javascript
页面刷新时记住滚动条的位置jquery代码
Jun 17 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
Sep 23 Javascript
javascript省市区三级联动下拉框菜单实例演示
Nov 29 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
Aug 26 Javascript
浅谈javascript中执行环境(作用域)与作用域链
Dec 08 Javascript
JavaScript之filter_动力节点Java学院整理
Jun 28 Javascript
require.js中的define函数详解
Jul 10 Javascript
深入了解javascript 数组的sort方法
Jun 01 Javascript
你应该了解的JavaScript Array.map()五种用途小结
Nov 14 Javascript
React中Ref 的使用方法详解
Apr 28 Javascript
vue实现图片裁剪后上传
Dec 16 Vue.js
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预定义常量
2006/12/25 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
php二分查找二种实现示例
2014/03/12 PHP
PHP5.3与5.5废弃与过期函数整理汇总
2014/07/10 PHP
php的dl函数用法实例
2014/11/06 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
node.js下when.js 的异步编程实践
2014/12/03 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
python列表操作之extend和append的区别实例分析
2015/07/28 Python
python机器学习之神经网络(三)
2017/12/20 Python
Python操作json的方法实例分析
2018/12/06 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
Shell脚本如何向终端输出信息
2014/04/25 面试题
应届电子商务毕业自荐书范文
2014/02/11 职场文书
幼儿园标语大全
2014/06/19 职场文书
信访维稳承诺书
2015/05/04 职场文书
证婚人致辞精选
2015/07/28 职场文书
新教师教学工作总结
2015/08/14 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python