PHP实现微信小程序人脸识别刷脸登录功能

首先我们先确认我们的百度云人脸库里已经上传了我们的个人信息照片

然后我们在后台写刷脸登陆的接口login我们要把拍照获取的照片存储到服务器

public function login(){
   // 上传文件路径
   $dir = "./Uploads/temp/";
   if(!file_exists($dir)){
    mkdir($dir,0777,true);
   }
   $upload = new \Think\Upload();
   $upload->maxSize = 2048000 ;// 设置附件上传大小
   $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
   $upload->savepath = '';
   $upload->autoSub = false;
   $upload->rootPath = $dir; // 设置附件上传根目录
   // 上传单个文件
   $info = $upload->uploadOne($_FILES['file']);
   if(!$info) {// 上传错误提示错误信息
     echo json_encode(array('error'=>true,'msg'=>$upload->getError()),JSON_UNESCAPED_UNICODE);
   }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','student',$options);
    // echo json_encode($ret,JSON_UNESCAPED_UNICODE);
    // exit;
    if($ret['error_code']==0){
     $user = $ret['result']['user_list'][0];
     $no = $user['user_id'];
     $score = $user['score'];
     if($score>=95){
      $data = M('student')->where("no = '{$no}'")->find();
      $data['score'] = $score;
      // $data['name'] = json_decode($data['name'],true);
      // $data['sex'] = json_decode($data['sex'],true);
      echo '识别成功' . json_encode($data,JSON_UNESCAPED_UNICODE);
     }else{
      echo '识别失败' . $data['score'];
     }
    }
   }
  } 

然后进行前台设计

<camera device-position="{{device?'back':'front'}}" flash="off" binderror="error" style="width: 100%; height: 300px;"></camera>
    <view class="weui-cells__title" >开关</view>
    <view class="weui-cells weui-cells_after-title">
      <view class="weui-cell weui-cell_switch">
        <view class="weui-cell__bd">切换摄像头</view>
        <view class="weui-cell__ft" >
          <switch bindtap="devicePosition" />
        </view>
      </view>
    </view>
<button type="primary" bindtap="takePhoto">刷脸登录</button> 

我们还可以控制相机的前后镜头

devicePosition() {
this.setData({
 device: !this.data.device,
})
console.log("当前相机摄像头为:", this.data.device ? "后置" : "前置");
camera() {
 let { ctx, type, startRecord } = this.data; },
data: {
 src: null,
}, 

在js里面调用接口

takePhoto() {
   const ctx = wx.createCameraContext()
   ctx.takePhoto({
    quality: 'high',
    success: (res) => {
     this.setData({
      src: res.tempImagePath
     })
     console.log(res)
     wx.uploadFile({
      url: '', //仅为示例,非真实的接口地址
      filePath: this.data.src,
      name: 'file',
      formData: {
      },
      success: function (res) {
       // var data = res.data
       // var json = JSON.parse(data)
       console.log(res)
       wx.showModal({
        title: "提示",
        content: res.data,
        showCancel: false,
        confirmText: "确定"
       })
      }
     })
    }
   })
  }, 

刷脸登录就成功了

总结

以上所述是小编给大家介绍的PHP实现微信小程序人脸识别刷脸登录,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • php实现微信小程序授权登录功能(实现流程)

    先上图 实现流程: 1.授权登陆按钮和正文信息放到了同一个页面,未授权的时候显示登陆按钮,已授权的时候隐藏登陆按钮,显示正文信息,当然也可以授权和正文分开成两个页面,在授权页面的onload里判断是否已授权,若已授权就直接跳转正文的页面.这里只说授权按钮和正文在同一页面的情况. 2.在onload里先判断是否已授权,如果已授权,就隐藏授权登陆按钮,显示正文信息,如果没有授权,显示授权登陆按钮. 3.前端使用button的open-type="getUserInfo"来操作,点击授权按钮

  • PHP后台实现微信小程序登录

    微信小程序官方给了十分详细的登陆时序图,当然为了安全着想,应该加上签名加密. 微信小程序端 1).调用wx.login获取 code . 2).调用wx.getUserInfo获取签名所需的 rawData , signatrue , encryptData . 3).发起请求将获取的数据发送的后台. login: function(e) { var that = this; wx.login({ success: function(res){ var code = res.code; //获取

  • PHP实现微信小程序人脸识别刷脸登录功能

    首先我们先确认我们的百度云人脸库里已经上传了我们的个人信息照片 然后我们在后台写刷脸登陆的接口login我们要把拍照获取的照片存储到服务器 public function login(){ // 上传文件路径 $dir = "./Uploads/temp/"; if(!file_exists($dir)){ mkdir($dir,0777,true); } $upload = new \Think\Upload(); $upload->maxSize = 2048000 ;//

  • 微信小程序获取手机号授权用户登录功能

    小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPhoneNumber这个组件通过button来实现(别的标签无效).将button中的open-type="getPhoneNumber",并且绑定bindgetphonenumber事件获取回调. <span style="font-size:14px;"><button open-type="get

  • 微信小程序人脸识别功能代码实例

    前几天偶然看见一个人脸识别的小程序demo,觉得很有趣下载下来想玩玩,结果只是一个框架而已用不了的,花了点时间完善一下 吐槽一下wx.uploadFile这个接口,真是个大坑,最开始调用时候,我以为它和同期的wx.downloadFile一样,只需要填入必须的参数就可以用,结果还是要配合后台php的 首先,upload这个接口的url和request一样指的是php的路径,而不是download一样文件路径 其次,我在最开始一直没弄懂这个"name"到底应该填什么,上传功能不好用我一直

  • 微信小程序之发送短信倒计时功能

    点击后 代码 <form bindsubmit="formSubmit" bindreset="formReset"> <view class="fidpas"> <input type="number" class="fidpas_inp"placeholder-class="lgin_place" placeholder="请输入手机号&quo

  • 微信小程序实现多个按钮toggle功能的实例

    微信小程序实现多个按钮toggle功能的实例 如下图所示,实现该按钮toggle功能. 百度上很多都是只设置一个按钮的toggle,所以我现在来稍微总结下:多个按钮如何实现自身的toggle功能. 原理: 1,列表展示的时候,我们会用wx:for 来循环数据,那么我们就会得到相应的当前的第几个数据(即 wx:key="index") 2.在每一个数据里面添加一个toggle的属性,toggle=false  则不展示, 3.设置一个点击方法,获取当前按钮所在的是第几个数据,然后将相应的

  • 微信小程序实现简单input正则表达式验证功能示例

    本文实例讲述了微信小程序实现简单input正则表达式验证功能.分享给大家供大家参考,具体如下: 1.效果展示 2.关键代码 index.wxml文件 <input placeholder="输入内容" bindinput="check"></input> <view>输入结果:{{result}}</view> index.js文件 Page({ data:{ result:'' }, check:function(e

  • 微信小程序使用audio组件播放音乐功能示例【附源码下载】

    本文实例讲述了微信小程序使用audio组件播放音乐功能.分享给大家供大家参考,具体如下: 1.效果展示 2.关键代码 ① index.wxml 复制代码 代码如下: <audio src="{{audioSrc}}" poster="{{audioPoster}}" name="{{audioName}}" author="{{audioAuthor}}" controls></audio> ② ind

  • 微信小程序使用video组件播放视频功能示例【附源码下载】

    本文实例讲述了微信小程序使用video组件播放视频功能.分享给大家供大家参考,具体如下: 1.效果展示 2.关键代码 ① index.wxml 复制代码 代码如下: <video src="../../pages/video/movie.mp4" binderror="videoErrorCallback"></video> ② index.js Page({ data:{ // text:"这是一个页面" }, vide

  • 微信小程序使用radio显示单选项功能【附源码下载】

    本文实例讲述了微信小程序使用radio显示单选项功能.分享给大家供大家参考,具体如下: 1.效果展示 2.关键代码 ① index.wxml <radio-group bindchange="radiogroupBindchange"> <radio value="radio1">radio1</radio> <radio value="radio2">radio2</radio> &l

  • 微信小程序基于本地缓存实现点赞功能的方法

    本文实例讲述了微信小程序基于本地缓存实现点赞功能的方法.分享给大家供大家参考,具体如下: wxml中的写法 注意: 1. 使用wx:if="{{condition}}" wx:else实现图标的切换效果: 2. 为图片绑定点击事件bindtap="toCollect",两个image标签都要绑定! <image wx:if="{{collection}}" src="/images/icon/pic1.png" bind

随机推荐