• 54:第五章:开发admin管理服务:7:人脸入库流程;人脸登录流程;浏览器开启视频调试模式(以便能够在本机的不安全域名的情况下,也能去开启摄像头);


    说明:

    (1)本篇博客内容:介绍人脸入库流程,人脸登录流程;人脸入库流程;Chrome开启视频调试模式,以便能够在本机的不安全域名的情况下,也能去开启摄像头;

    目录

    一:人脸入库流程,人脸登录流程;

    二:Chrome开启视频调试模式;


    一:人脸入库流程,人脸登录流程;

    在人脸登录之前,首先要人脸入库;

    (1)首先,在创建管理员账号的时候,勾选"人脸登录";

    (2)点击"获取人脸"后,会捕捉人脸在画面中的动态图,获得人脸数据;(其实,获得的是一个人脸的Base64的数据)

    (3)然后,在添加新的管理员时,其会判断是否有人脸数据;

              ● 如果没有人脸,会使用前面我们在【51:第五章:开发admin管理服务:4:开发【新增admin账号,接口】;】中编写的逻辑;

              ● 如果有人脸,需要做一个人脸入库的操作(即,把人脸的Base64数据,保存到MongoDB的GridFS中);保存完毕后,会得到FaceId;然后,FaceId和其他信息一起,传到后端逻辑,去创建新管理员账号;

    (4)这样以后,我们这次创建的管理员账号,后续就可以使用人脸去登录了;

    (1)管理员在登录的时候,要想使用人脸登录;需要勾选"使用人脸登录";

    (2)点击登录后,会获得人脸数据;并携带人脸数据到后端(即把此时捕捉的人脸的Base64的数据,带到后端);

    (3)然后,在后端会做一个校验:其实就是用【在(2)中捕捉的人脸数据】和【之前人脸入库时,保存在MongoDB的GridFS中的人脸数据】进行对比和匹配;

              ● 这个匹配是一个相似度匹配;比如,我们可以在后台设置;比如,我们可以设置,只要两张人脸相似度>=90%,就认为其OK;

    (4)如果人脸校验成功,直接就是登录成功;如果校验失败,可以返回登录页,让用户再试试;


    二:Chrome开启视频调试模式;

    (1)课程中,使用的是旧版浏览器,其报的错是:

    ……………………………………………………

    (2)而自己的浏览器是最新版本;自己在勾选"人脸登录"时,报的错是: 【TypeError: Cannot read properties of undefined (reading 'getUserMedia')】;

              ● 可以参考【解决 “TypeError: Cannot read properties of undefined (reading ‘xxx‘)“】;

              ● 其错误逻辑应该是:【因为我们的域名是非https的,即非安全的】→【所以,前端的getUserMedia()这个方法是不能工作的】→【因此,调用摄像头,获取人脸头像的逻辑,就G了】;

    ……………………………………………………

    (3)解决策略:

              ● 策略1:把本地的自己设置的那个域名,改为https;

              ● 策略2:在谷歌浏览器【chrome://flags/#unsafely-treat-insecure-origin-as-secure】中,进行如下设置:

    ………………………………………………

    (4)效果;

              ● 要保证自己PC的摄像头是OK的,而且是unlock的状态;

              ● 在新增admin管理员账号那儿,是OK的;

              ● 在admin管理员登录那儿,也是OK的;

    ……………………………………………………

    (5)声明:

              ● 我们每次重启电脑后,都需要按照(3)中的策略,重新设置一下;

              ● 在生产环境中,我们在部署项目的时候,会把项目的域名设置为https;所以,在实际生产环境,是没有这儿说的问题的;

  • 相关阅读:
    反向散射耦合RFID系统的原理及特点,带你更深入的了解
    在vs code中创建一个名为 “django_env“ 的虚拟环境报错?!以下方法可以解决
    Unity3D工程作为库内嵌到安卓原生开发指南
    Java 中那些绕不开的内置接口 -- Comparable 和 Comparator
    Linux进程概念详解
    LoRa和LoRaWAN有什么区别?工业网关能用吗?
    SQL----复杂查询
    使用打表法找规律
    FastAPI 学习之路(八)路径参数和数值的校验
    移动终端开发实验五——对话框的使用
  • 原文地址:https://blog.csdn.net/csucsgoat/article/details/126023871