微信小程序实现刷脸登录


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 相关文章推荐
jQuery中文入门指南,翻译加实例,jQuery的起点教程
Jan 13 Javascript
Javascript 阻止javascript事件冒泡,获取控件ID值
Jun 27 Javascript
解析URI与URL之间的区别与联系
Nov 22 Javascript
在Python中使用glob模块查找文件路径的方法
Jun 17 Javascript
Javascript实现鼠标右键特色菜单
Aug 04 Javascript
js实现html table 行,列锁定的简单实例
Oct 13 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
详解使用webpack构建多页面应用
Dec 21 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
Oct 25 Javascript
vue+moment实现倒计时效果
Aug 26 Javascript
使用vue构建多页面应用的示例
Oct 22 Javascript
Vue组件简易模拟实现购物车
Dec 21 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 socke 向指定页面提交数据
2008/07/23 PHP
PHP基础学习小结
2011/04/17 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
2019/01/18 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
python发送arp欺骗攻击代码分析
2014/01/16 Python
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
详解Python Socket网络编程
2016/01/05 Python
Python异常处理操作实例详解
2018/08/28 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
成教自我鉴定
2013/10/27 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
召开会议通知范文
2015/04/15 职场文书
安全主题班会教案
2015/08/12 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android