leonardoakio/facial-validation

用于Laravel或遗留应用程序的面部验证器

1.0.0 2024-04-04 13:12 UTC

This package is auto-updated.

Last update: 2024-09-04 14:11:36 UTC


README

 

Simple Keycloak Client para Laravel

遗留CodeIgniter:数据以原始字符串JSON格式“data:image/jpeg;base64,/9j/4AA...AAADE/2Q==”从前端通过Ajax传递,图片以base64编码通过JSON.stringify()发送

async sendImages() {
    $.ajax({
        url: urlBase + "index/validatePhoto",
        type: 'POST',
        contentType: 'application/json',
        data: JSON.stringify(this.capturedImages),
        success: (data) => {
            this.responseData = data
            this.verified = (JSON.parse(data.data).verified);
            this.capturedImages = [];
        },
        error: function(xhr, status, error) {
            console.error(xhr.responseText);
        }
    });
}

Laravel:数据不一定需要以JSON.stringify()的原始方式发送,可以发送和接收JSON

const response = await api.post(
    urlBase + "index/validatePhoto", 
    this.capturedImages, {
        headers: {
        'Content-Type': 'application/json'
        }
    }
);

开始项目

在项目的vendor文件夹内require要导入的包

composer require leonardoakio/facial-validation

如果已经安装,更新包以检查是否有新版本

composer update leonardoakio/facial-validation

在config/app.php文件中添加provider,以便KeycloakClientServiceProvider可以在vendor上下文中被识别

FacialValidator\FacialValidatorServiceProvider::class

发布lib要生成的文件

php artisan vendor:publish --tag=facial-laravel

我们也可以直接执行Provider

php artisan vendor:publish  --provider="FacialValidator\FacialValidatorServiceProvider"

添加ENV FACIAL_FRAMEWORK,它将用于发布Laravel或Legacy(Code Igniter)的文件(可选)

FACIAL_FRAMEWORK=laravel

在app/Providers/AppServiceProvider.php文件中将FacialValidatorRepositoryInterface绑定到FacialValidatorRepository,这将与DeepFace通信,也可以扩展到其他面部识别工具(如Amazon Rekognition),只需实现相同的接口并创建一个新的绑定即可

$this->app->bind(
    App\Repositories\FacialValidator\FacialValidatorRepositoryInterface::class,
    \App\Repositories\FacialValidator\FacialValidatorRepository::class
);

在Laravel的路由文件routes/api.php中添加验证路由

Route::group(["prefix" => "facial"], function () {
    Route::post('/verify', [App\Http\Controllers\FacialValidator\FacialValidationController::class, 'validatePhoto']);
});

注意:最后几项都在FacialValidatorServiceProvider中,只需实现一个逻辑来在初始化时执行boot,并取消注释方法调用(registerRoutes(),registerBindings())以自动化之前的手动过程

结构

├── config/                 # Configuração para definir boot do FacialServiceProvider.php
├── routes/                 # Rotas de autenticação do Keycloak
├── src/Controllers         # Controladores que irão lidar com as rotas
├── src/Enums               # Lista de elementos 
├── src/Repositories        # Classe de comunicação com o Keyclaok
├── composer.json           # Listar as dependências do projeto e suas versões

指南