微信小程序实现刷脸登录


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函数(json)附详细说明
May 25 Javascript
JS数组去重与取重的示例代码
Jan 24 Javascript
js中confirm实现执行操作前弹出确认框的方法
Nov 01 Javascript
浅谈js 闭包引起的内存泄露问题
Jun 22 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
Feb 29 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
Jan 09 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
Feb 19 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
Jun 12 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
Feb 22 Javascript
vue基础之data存储数据及v-for循环用法示例
Mar 08 Javascript
Node爬取大批量文件的方法示例
Jun 28 Javascript
vue项目中使用bpmn-自定义platter的示例代码
May 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
BBS(php & mysql)完整版(三)
2006/10/09 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
php上传图片并给图片打上透明水印的代码
2010/06/07 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
微信小程序实现导航栏和内容上下联动功能代码
2020/06/29 Javascript
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
python实现二维数组的对角线遍历
2019/03/02 Python
python十进制转二进制的详解
2020/02/07 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
德国内衣、泳装和睡衣网上商店:Bigsize Dessous
2018/07/09 全球购物
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
前台接待的工作职责
2013/11/21 职场文书
安全口号大全
2014/06/21 职场文书
历史博物馆观后感
2015/06/05 职场文书
感恩教师节主题班会
2015/08/12 职场文书
python 实现体质指数BMI计算
2021/05/26 Python
5道关于python基础 while循环练习题
2021/11/27 Python