首页 > 教程 >

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

2023-02-16教程围观

简介教你用PHP实现微信小程序人脸识别刷脸登录功能,首先我们先确认我们的百度云人脸库里已经上传了我们的个人信息照片;然后我们在后台写刷脸登陆的接口login我们要把拍照获取的照片存储到服务器;publicfunctionlogin(){//上传文件路径$dir="./Uploads/temp/";if(!file_exists($dir)){mkdir($dir,0777,true);}$upload

  

教你用PHP实现微信 小程序 人脸识别 刷脸登录功能,首先我们先确认我们的百度云人脸库里已经上传了我们的个人信息照片;

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

public function login(){     // 上传文件路径     $dir = "./Uploads/temp/";     if(!file_exists($dir)){         mkdir($dir,0777,true);     }     $upload = new ThinkUpload();     $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 =  64_encode(file_get_contents($file));         $client = $this->init_face();         $options['liveness_control'] = 'NORMAL';         $options['max_user_num'] = '1';         $ret = $client->search($image,' 64','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__ " >开关</view> <view class="weui-cells weui-cells_after- ">     <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({                          : "提示",                         content: res.data,                         showCancel: false,                         confirmText: "确定"                    })                 }             })         }     }) },

刷脸登录就成功了。



下载链接:网站源码/小程序源码/网站模板下载

Tags: PHP 微信 程序 登录 功能