微信小程序实现刷脸登录


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开发技术大全 第4章 直接量与字符集
Jul 03 Javascript
JavaScript中的Primitive对象封装介绍
Dec 31 Javascript
js实现鼠标感应图片展示的方法
Feb 27 Javascript
微信小程序 页面传参实例详解
Nov 16 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
Feb 24 Javascript
微信小程序 向左滑动删除功能的实现
Mar 10 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
Aug 10 Javascript
深入浅析javascript继承体系
Oct 23 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
Sep 16 Javascript
JavaScript将数组转换为链表的方法
Feb 16 Javascript
JS数组去重详情
Nov 07 Javascript
微信小程序中wxs文件的一些妙用分享
Feb 18 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抽象工厂模式(Elgg)
2010/03/21 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
初识PHP中的Swoole
2016/04/05 PHP
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
PDO::exec讲解
2019/01/28 PHP
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
Javascript的闭包详解
2014/12/26 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
python基础 range的用法解析
2019/08/23 Python
python super的使用方法及实例详解
2019/09/25 Python
python3多线程知识点总结
2019/09/26 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
Python zip函数打包元素实例解析
2019/12/11 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
全球最大的游戏市场:G2A
2018/07/05 全球购物
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
最新英语专业学生求职信范文
2013/09/21 职场文书
关于毕业的广播稿
2014/01/10 职场文书
交通违章检讨书
2014/09/21 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
2015年商场工作总结
2015/04/27 职场文书
开票证明
2015/06/23 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
卫生主题班会
2015/08/14 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang