微信小程序实现刷脸登录

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

下载地址

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

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

public function login(){
    $dir="./***";//自己定义的文件名
    if(!file_exists($dir)){
      mkdir($dir,0777,true);
    }
    $upload = new \Think\Upload();// 实例化上传类
    $upload->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'];
        $score = $user['score']; 

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

          if($data){
            //查到此学号
            $data['score'] = $score;
            echo json_encode($data,JSON_UNESCAPED_UNICODE);
          }else{
            //本地库不存在此学号
            echo "本地数据库没有该学生,百度云库信息:个人信息:{$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',
    ));
} 

前三个参数是必填的,后面参数根据自己的实际情况选即可。

微信小程序中需要使用camera组件以及wx.createCameraContext()方法,之后在js调用后台代码即可。

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

(0)

相关推荐

  • 微信小程序实现人脸检测功能

    本文为大家分享了微信小程序实现人脸检测的具体代码,供大家参考,具体内容如下 因为本文章的人脸检测技术运用的是百度云人工智能,首先要有百度云的账号. 近期,人脸识别已经升级到了V3,开启了测试,所以也依照v3文档进行了更新: 1.人脸识别的每个接口,都需要用到百度云的access_token,首先获取 access-token ,一个月之后access_token过期:可以将获取的存入文件,再次引用时可以判断其是否过期,然后引用或者重新获取: //获取access_token function r

  • 微信小程序实现人脸识别

    本文为大家分享了微信小程序人脸识别的具体代码,供大家参考,具体内容如下 首先,我们要有开发者工具,今天所说的是后端和前端联合起来实现的. 在PHP的控制器中写一个upload方法,代码如下: public function upload($id=''){ if(empty($id)){ return false; } $no = M("student")->where("id={$id}")->getField('no'); $dir = ".

  • 微信小程序实现刷脸登录

    微信小程序本身并不具有刷脸登录的功能,实现时需要借助百度云的人脸识别的sdk,当然现在百度云是暂时免费的,我们可以登录自行下载使用. 下载地址 后台代码我们使用thinkPHP框架实现,将下载好的sdk导入thinkPHP框架中,就可以写方法使用了. 我们需要将图片上传到自己服务器和百度云人脸库中. public function login(){ $dir="./***";//自己定义的文件名 if(!file_exists($dir)){ mkdir($dir,0777,true)

  • 微信小程序学习笔记之登录API与获取用户信息操作图文详解

    本文实例讲述了微信小程序学习笔记之登录API与获取用户信息操作.分享给大家供大家参考,具体如下: 前面介绍了微信小程序跳转页面.传递参数获得数据,这里来分析一下登录API与获取用户信息操作方法. [小程序登录]wx.login() app.js: App({ onLaunch: function () { // 登录 wx.login({ success: function (res) { if (res.code) { //发起网络请求 wx.request({ url: 'https://w

  • 微信小程序后端实现授权登录

    登录与授权 官方文档 一.登录登录流程时序 说明: 调用 wx.login()获取临时登录凭证code,并回传到开发者服务器. 调用code2Session接口,换取用户唯一标识 OpenID和会话密钥 session_key. 之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份. 注意: 会话密钥session_key是对用户数据进行加密签名的密钥.为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥. 临时登录

  • 微信小程序实现短信登录的实战

    目录 1.界面效果预览 2.uView安装 3.uView配置 3.1 main.js中引入 3.2 uni.scss中引入 3.3 App.vue中引入 3.4 pages.json中配置 4.短信登录界面 5.点击获取验证码接口 项目要求增加短信登录及人脸识别登录功能,下面我们来实现下短信登录功能 1.界面效果预览 2.uView安装 uView官网:https://www.uviewui.com 以npm安装为例,执行:npm install uview-ui即可 3.uView配置 3.

  • 微信小程序搭建及解决登录失败问题

    等了好久的小程序,终于在近日曝光了.现在就带大家来尝尝鲜.以下是一张随便看看的图. 一.构建微信小程序的步骤 下载开发工具 考虑到微信0.9.092100的Web开发者工具对于登录做了限制,所以下载登录还是需要一点门路的,我在下面有介绍,希望大家耐心的往下面看~下载工具的地址:链接 密码: r3hc. 破解的步骤就是:将破解压缩包的两个文件,放到如下图路径: 这个是MAC路径: 应用程序->微信web开发者工具->显示包内容 /Resources/app.nw/app/dist/compone

  • 微信小程序中做用户登录与登录态维护的实现详解

    总结 大家都知道,在开发中提供用户登录以及维护用户的登录状态,是一个拥有用户系统的软件应用普遍需要做的事情.像微信这样的一个社交平台,如果做一个小程序应用,我们可能很少会去做一个完全脱离和舍弃连接用户信息的纯工具软件. 让用户登录,标识用户和获取用户信息,以用户为核心提供服务,是大部分小程序都会做的事情.我们今天就来了解下在小程序中,如何做用户登录,以及如何去维护这个登录后的会话(Session)状态.下面来看看详细的介绍: 在微信小程序中,我们大致会涉及到以下三类登录方式: 自有的账号注册和登

  • Laravel 微信小程序后端实现用户登录的示例代码

    接上篇微信小程序后端搭建:分享:Laravel 微信小程序后端搭建 后端搭建好后第一件事就是用户登录认证,简单实现微信小程序登录认证 1.user 模型 use Laravel\Passport\HasApiTokens; 新增 use HasApiTokens, Notifiable; protected $fillable = [ 'id', 'name', 'email', 'email_verified_at', 'username', 'phone', 'avatar',//我用来把微

  • 微信小程序实现手机验证码登录

    我们的微信小程序里面,手机验证码登录已经成为不可缺少的一部门,为此,我写的这个手机验证码登录,这里我结合thinkphp6+微信小程序实现 首先我们进入小程序页面: wxml页面: <!--pages/phone/phone.wxml--> <view class="container">   <view class="title"  style='height:{{statusBarHeight+100}}rpx;padding-to

  • 微信小程序监听用户登录事件的实现方法

    最近在开发小程序,小程序既需兼顾针对新用户的内容预览,又要为注册用户提供服务,简单梳理下,基本需求如下: 小程序共三个tab页,所有用户都可以浏览首页内容,了解我们可以提供的优质服务: 进入其他两个页面之后,如果用户没有登录,那就显示登录按钮,如果登录了,则显示服务内容: 用户在一个页面登陆之后,全局生效. 就这么个看起来很简单的需求,也经过了如下迭代: 将登录状态和凭据存储在 App.globalData.authorize 中,每个需要授权的页面 onload 生命周期检查 App.glob

  • 微信小程序 本地存储及登录页面处理实例详解

    实例内容 登陆界面 处理登陆表单数据 处理登陆表单数据(异步) 清除本地数据 登录界面: 在app.json中添加登陆页面pages/login/login,并设置为入口. 保存后,自动生成相关文件(挺方便的). 修改视图文件login.wxml <!--pages/login/login.wxml--> <view class="container"> <form bindsubmit="formSubmit"> <vie

随机推荐