在以往的Web应用信息系统开发中,用户认证是不可或缺的功能模块。用户认证功能包括用户注册和登录认证。在以往的开发方法中,实现用户认证功能模块的常用方式是使用邮件和短信进行验证。现在,许多用户的电脑都配备了摄像头,可以充分利用人脸识别的人工智能技术来实现用户认证。我使用 FaceIO 的 JavaScript 库在 Web 应用项目中实现用户身份验证。
本文主要介绍如何通过第三方AI服务接口开发Web应用项目的用户登录模块。Web 应用程序项目的源代码已上传到 GitHub,并且基于 MIT 协议。没有任何限制。
这个项目是一个简单而完整的Web微服务系统。项目采用前后端分离的开发方式,使用不同的项目文件路径。前端使用 React,后端使用 Java 1.8 和带有 Spring Boot 的微服务,数据库使用 MySQL。前端在React中集成FaceIO,实现AI的对接。
Technology stack of WEB APP project
Operating System:Windows 10
Front-end: Node.js 18.0.0, React 18.2.0, FaceIO, CoreUI 4.3.1
Front-end development tool: WebStorm 2019
Back-end: Java 1.8, Spring Boot, JWT, Mybatis, Maven
Back-end development tool: IntelliJ IDEA 2019
Database: MySQL 5.7+
该 Web 项目的源代码包括前端、后端和数据库,是一个完整的 Web 应用程序信息系统。前端开发使用React,后端开发使用Java和SpringBoot,数据库使用MySQL。第三方AI服务接口使用FaceIO。FaceIO 提供了一个在线 JavaScript 库,可以在前端代码中直接引用。在前端引用 FaceIO 库后,添加少量代码即可轻松实现人脸认证,与后端集成后即可实现完整的用户认证。前端 UI 使用 CoreUI 的免费模板。
FaceIO的使用不仅限于浏览器。它可以在任何浏览器上运行,包括 IE、Chrome、Firefox 和 Safari。而且,所有的AI业务处理都是在FaceIO的服务器上完成的,所以FaceIO需要有用户当前浏览器上的摄像头访问权限。
如何在前端 React 框架中使用 FaceIO 库
步骤 1:安装和配置 Node.js 环境
从Node.js官网下载对应版本Node.js的压缩包。我使用的版本是 V18.0.0。如果你想运行我在本地发布的开源 Web 项目,你最好也使用 V18.0.0。由于Node.js版本的迭代速度相对较快,如果使用其他版本,则此开源 Web 项目中使用的本地 JavaScript 库可能不兼容,可能无法运行。
下载Node.js的压缩包后,解压到英文目录下。因为我使用 IntelliJ IDEA 开发前端 React,所以我需要在 IntelliJ IDEA 中配置 Node.js 和 NPM,并指定 Node.js 的安装目录。
在 IntelliJ IDEA 中配置 Node.js 和 NPM 后,可以通过 IntelliJ IDEA 工具创建一个 React App 项目。
第 2 步:在 FaceIO 中申请公共 ID
FaceIO 提供了一个在线 JavaScript 库。如果你想使用FaceIO提供的AI服务,你需要先为你的APP申请一个公共ID。登录,先注册账号,然后根据项目创建应用获取公共 ID。这个公共 ID 需要写在你的 React App 项目的代码中。申请公共 ID 时,FaceIO 会为您的应用提供免费版本的公共 ID,但对使用次数有限制。
第 3 步:在 React App 项目中使用 FaceIO
外部 JavaScript 库地址由 FaceIO 提供。
在 React App 项目的代码中,可以这样引用。例如,在我的 WEB 项目文件中Login.js:
const script = document.createElement('script');
script.type = 'text/javascript';
script.async = true;
script.src = 'https://cdn.faceio.net/fio.js';
document.head.appendChild(script);
引入 fio.js 后,定义常量就可以使用了。代码如下所示:
let myFaceIO;
useEffect(()=>{
//eslint-disable-next-line
myFaceIO = new faceIO("fioab497");
},[])
fioab