robertogallea/laravel-greenpass

此包的最新版本(0.2.2)没有可用的许可证信息。

针对php/laravel的欧洲绿通行证解码和验证

0.2.2 2021-12-15 10:18 UTC

This package is auto-updated.

Last update: 2024-09-15 16:33:43 UTC


README

Laravel Green Pass

laravel-greenpass

Author GitHub release (latest SemVer) Laravel >=6.0 Software License PSR2 Conformance Sponsor me! Packagist Downloads

laravel-greenpass是一个用于管理欧洲绿通行证(即新冠证明)的包。该包允许轻松验证和解码绿通行证。它还适用于Laravel,因为它提供了一个方便的自定义验证器来验证请求。

安装

运行以下命令以安装包的最新适用版本

composer require robertogallea/laravel-greenpass

Laravel

在你的应用配置中,将服务提供者添加到$providers数组中(仅限Laravel 5.4或以下版本)

'providers' => [
   ...
   robertogallea\LaravelGreenPass\GreenPassServiceProvider::class,
],

Lumen

bootstrap/app.php中,注册服务提供者

$app->register(robertogallea\LaravelGreenPass\GreenPassServiceProvider::class);

配置

默认情况下,底层验证包将验证证书保存在storage/app/public/green_pass_cache中。如果你想更改此文件夹,请使用以下命令发布配置文件

php artisan vendor:publish --provider="robertogallea\LaravelGreenPass\GreenPassServiceProvider" --tag="config"

并编辑config/green-pass.php文件中的certificate-storage-path键。

确保所选文件夹具有写入权限!

验证

要验证绿通行证的强正性,请在验证规则数组中使用greenpassgreenpass_file关键字。请注意,这样你并不能检查绿通行证实际上是否有效(即没有过期或被撤销)。

    public function rules()
    {
        return [
            'greenpass_string' => 'greenpass',
            
            //...
        ];
    }
    public function rules()
    {
        return [
            'greenpass_uploaded_file' => 'greenpass_file',
            
            //...
        ];
    }

要执行强验证(即检查实际有效性),你可以在验证规则中添加active参数

    public function rules()
    {
        return [
            'greenpass_string' => 'greenpass:active',
            
            //...
        ];
    }
    public function rules()
    {
        return [
            'greenpass_uploaded_file' => 'greenpass_file:active',
            
            //...
        ];
    }

实用GreenPassDecoder类

可以使用GreenPassDecoder服务读取绿通行证

use robertogallea\LaravelGreenPass\GreenPassDecoder;

...

$greenpass = new GreenPassDecoder();

$result = $greenpass->decode('HC1:...');
var_dump($result);

// or

$result = $greenpass->decodeFile('/path/to/file');
var_dump($result);

你还可以使用GreenPass外观

use robertogallea\LaravelGreenPass\GreenPassDecoder;

...
$result = \GreenPass::decode('HC1:...');
var_dump($result);

// or

$result = \GreenPass::decodeFile('/path/to/file');
var_dump($result);