微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

微信小程序实现刷脸登录

微信小程序本身并不具有刷脸登录功能,实现时需要借助百度云的人脸识别的sdk,当然现在百度云是暂时免费的,我们可以登录自行下载使用。

下载地址

后台代码我们使用thinkPHP框架实现,将下载好的sdk导入thinkPHP框架中,就可以写方法使用了。

我们需要将图片上传到自己服务器和百度人脸库中。

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']; 
    $<a href="https://www.jb51.cc/tag/score/" target="_blank" class="keywords">score</a> = $user['<a href="https://www.jb51.cc/tag/score/" target="_blank" class="keywords">score</a>']; 

    if(!empty($no)){ 
      $data = M('student')->field('no,name,sex')->where("no='{$no}'")->find(); 

      if($data){ 
        //查到此学号 
        $data['<a href="https://www.jb51.cc/tag/score/" target="_blank" class="keywords">score</a>'] = $<a href="https://www.jb51.cc/tag/score/" target="_blank" class="keywords">score</a>; 
        echo json_encode($data,JSON_U<a href="https://www.jb51.cc/tag/nes/" target="_blank" class="keywords">nes</a>CAPED_UNICODE); 
      }else{ 
        //本地库不存在此学号 
        echo "本地<a href="https://www.jb51.cc/tag/shujuku/" target="_blank" class="keywords">数据库</a>没有该学生,<a href="https://www.jb51.cc/tag/baidu/" target="_blank" class="keywords">百度</a>云库信息:个人信息:{$no},分值:{$<a href="https://www.jb51.cc/tag/score/" target="_blank" class="keywords">score</a>}"; 
      } 

    } 

  }else{ 
    echo "活体检测失败,".json_encode($ret,JSON_U<a href="https://www.jb51.cc/tag/nes/" target="_blank" class="keywords">nes</a>CAPED_UNICODE); 
  } 
} 

}

里面的search方法是sdk的方法

$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调用后台代码即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。