最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

微信小程序实现人脸识别登陆的示例代码

来源:动视网 责编:小采 时间:2020-11-27 21:59:16
文档

微信小程序实现人脸识别登陆的示例代码

微信小程序实现人脸识别登陆的示例代码:前言 这是一篇关于一个原创微信小程序开发过程的原创文章。涉及到的核心技术是微信小程序开发方法和百度云人脸识别接口。小程序的主体是一个用于个人密码存储的密码管理器,在登陆注册阶段,需要调用百度云人脸识别接口以及百度云在线人脸库的管理接口。本文
推荐度:
导读微信小程序实现人脸识别登陆的示例代码:前言 这是一篇关于一个原创微信小程序开发过程的原创文章。涉及到的核心技术是微信小程序开发方法和百度云人脸识别接口。小程序的主体是一个用于个人密码存储的密码管理器,在登陆注册阶段,需要调用百度云人脸识别接口以及百度云在线人脸库的管理接口。本文


另外,要开启微信小程序 IDE 的 不校验合法域名的选项(设置->项目设置 -> 勾选 不校验......)

至此,注册 就完成了(即获取用户昵称、拍照、上传人脸库注册。)

2.拍照上传在线人脸识别---登陆

找到指定用户组中与上传照片最相似的人脸并返回,比对结果。

我们仍然需要再建立一个页面来承载我们的登陆相关操作。就假定为 camera2{camera2.js camera2.wxml camera2.wxss camera2.json}

camera2.wxml

<!-- camera.wxml -->
<camera
 device-position="front"
 flash="off"
 binderror="error"
 style="width: 100%; height: 300px;"
></camera>
<button type="primary" bindtap="takePhoto">拍照</button>
<view>预览</view>
<image mode="widthFix" src="{{src}}"></image>

camera2.js 与注册大同小异,区别是图片上传的接口不同(这次是 https://aip.baidubce.com/rest/2.0/face/v3/search 人脸搜素),获取access_token、拍照、照片base64编码都相同。

// camera.js
Page({
 data: {
 base64: "",
 token: "",
 msg: null
 },
 //拍照并编码
 takePhoto() {
 //拍照
 const ctx = wx.createCameraContext()
 ctx.takePhoto({
 quality: 'high',
 success: (res) => {
 this.setData({
 src: res.tempImagePath
 })
 }
 })

 var that = this;
 //图片base64编码
 wx.getFileSystemManager().readFile({
 filePath: this.data.src, //选择图片返回的相对路径
 encoding: 'base64', //编码格式
 success: res => { //成功的回调
 that.setData({
 base64: res.data
 })
 }
 })

 //acess_token获取
 wx.request({
 url: 'https://aip.baidubce.com/oauth/2.0/token', //真实的接口地址
 data: {
 grant_type: 'client_credentials',
 client_id: '**************************',
 client_secret: '*******************************'//用自己的
 },
 header: {
 'Content-Type': 'application/json' // 默认值
 },
 success(res) {
 that.setData({
 token: res.data.access_token//获取到token
 })
 }
 })

 //上传人脸进行 比对
 wx.request({
 url: 'https://aip.baidubce.com/rest/2.0/face/v3/search?access_token=' + that.data.token,
 method: 'POST',
 data: {
 image: this.data.base64,
 image_type: 'BASE64',
 group_id_list: '********'//自己建的用户组id
 },
 header: {
 'Content-Type': 'application/json' // 默认值
 },
 success(res) {
 that.setData({
 msg: res.data.result.user_list[0].score
 })
 if(that.data.msg > 80){
 wx.showToast({
 title: '验证通过',
 icon: 'success',
 duration: 1000
 })
 //验证通过,跳转至UI页面
 wx.switchTab({
 url: '../UI/ui',
 })
 }
 }
 });

 wx.showToast({
 title: '请重试',
 icon: 'loading',
 duration: 500
 })
 },
 error(e) {
 console.log(e.detail)
 }
})

至此,我们的登陆也搞定了。

注意:上述的 登陆注册 是一个某个小程序的一个模块。关系如下

所以,需要在index页面中设置按钮,来跳转到注册以及登陆页面,然后注册登陆成功后,再跳转至其他功能页面。

后记

这次小程序实战,对我自己也是一个不小的挑战,对比各个云接口、看接口文档、查资料,耗费了大概十来天。但是,我相信大有裨益。另外,对我参考的博客和回答的诸位表示感谢。我们一起前进!

参考资料

【1】微信小程序开发文档

【2】百度云接口文档.v3版

文档

微信小程序实现人脸识别登陆的示例代码

微信小程序实现人脸识别登陆的示例代码:前言 这是一篇关于一个原创微信小程序开发过程的原创文章。涉及到的核心技术是微信小程序开发方法和百度云人脸识别接口。小程序的主体是一个用于个人密码存储的密码管理器,在登陆注册阶段,需要调用百度云人脸识别接口以及百度云在线人脸库的管理接口。本文
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top