微信小程序?qū)崿F(xiàn)刷臉登錄
微信小程序本身并不具有刷臉登錄的功能,實(shí)現(xiàn)時(shí)需要借助百度云的人臉識別的sdk,當(dāng)然現(xiàn)在百度云是暫時(shí)免費(fèi)的,我們可以登錄自行下載使用。
下載地址
后臺(tái)代碼我們使用thinkPHP框架實(shí)現(xiàn),將下載好的sdk導(dǎo)入thinkPHP框架中,就可以寫方法使用了。
我們需要將圖片上傳到自己服務(wù)器和百度云人臉庫中。
public function login(){
$dir="./***";//自己定義的文件名
if(!file_exists($dir)){
mkdir($dir,0777,true);
}
$upload = new \Think\Upload();// 實(shí)例化上傳類
$upload->maxSize = 3145728 ;// 設(shè)置附件上傳大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設(shè)置附件上傳類型
$upload->rootPath = $dir; // 設(shè)置附件上傳根目錄
$upload->savepath='';
// 上傳單個(gè)文件
$info = $upload->uploadOne($_FILES['file']);
if(!$info) {// 上傳錯(cuò)誤提示錯(cuò)誤信息
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){
//查到此學(xué)號
$data['score'] = $score;
echo json_encode($data,JSON_UNESCAPED_UNICODE);
}else{
//本地庫不存在此學(xué)號
echo "本地?cái)?shù)據(jù)庫沒有該學(xué)生,百度云庫信息:個(gè)人信息:{$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',
));
}
前三個(gè)參數(shù)是必填的,后面參數(shù)根據(jù)自己的實(shí)際情況選即可。
微信小程序中需要使用camera組件以及wx.createCameraContext()方法,之后在js調(diào)用后臺(tái)代碼即可。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用JavaScript實(shí)現(xiàn)一個(gè)交互式音樂播放器
JavaScript,作為前端開發(fā)的重要語言,可以實(shí)現(xiàn)許多復(fù)雜的功能,在這篇文章中,我們將一起創(chuàng)建一個(gè)交互式的音樂播放器,快跟隨小編一起學(xué)習(xí)一下吧2024-01-01
tracking.js實(shí)現(xiàn)前端人臉識別功能
這篇文章主要介紹了tracking.js實(shí)現(xiàn)前端人臉識別功能,本文通過實(shí)例代碼截圖的形式給大家展示的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Save a File Using a File Save Dialog Box
Save a File Using a File Save Dialog Box...2007-06-06
Js+Ajax,Get和Post在使用上的區(qū)別小結(jié)
下面小編就為大家?guī)硪黄狫s+Ajax,Get和Post在使用上的區(qū)別小結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06
人人網(wǎng)javascript面試題 可以提前實(shí)現(xiàn)下
JavaScript面試題要求:以下題目必須從一至四題中,選出三道題,使用原生代碼實(shí)現(xiàn),不可使用任何框架,第五題為選作題2012-01-01

