>  기사  >  백엔드 개발  >  PHP는 WeChat 애플릿의 얼굴 인식 및 얼굴 스와이프 로그인 기능을 구현합니다.

PHP는 WeChat 애플릿의 얼굴 인식 및 얼굴 스와이프 로그인 기능을 구현합니다.

不言
不言원래의
2018-06-01 10:40:032193검색

이 기사에서는 예제 코드를 통해 PHP 기반 WeChat 애플릿의 얼굴 인식 및 얼굴 로그인 기능을 설명합니다. 관심 있는 친구들이 함께 배울 수 있습니다

우선, 먼저 개인 프로필이 Baidu Cloud 페이스에 업로드되었는지 확인합니다. 데이터베이스 정보 사진

그런 다음 로그인을 위해 백그라운드에 얼굴 로그인 인터페이스를 작성합니다. 사진을 찍어 얻은 사진을 서버에 저장해야 합니다

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?&#39;back&#39;:&#39;front&#39;}}" 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: &#39;high&#39;, 
    success: (res) => { 
     this.setData({ 
      src: res.tempImagePath 
     }) 
     console.log(res) 
     wx.uploadFile({ 
      url: &#39;&#39;, //仅为示例,非真实的接口地址 
      filePath: this.data.src, 
      name: &#39;file&#39;, 
      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 구현 양식 반복 제출 방지 기능 (토큰 검증 기반)

PHP는 데이터 사전 생성 기능을 구현합니다

위 내용은 PHP는 WeChat 애플릿의 얼굴 인식 및 얼굴 스와이프 로그인 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.