minvws/puzi-php

用于从UZI通行证读取数据的PHP库。

安装次数: 3,867

依赖关系: 2

建议者: 0

安全性: 0

星标: 8

关注者: 13

分支: 5

开放问题: 0

语言:Shell

v2.3.1 2023-02-27 18:04 UTC

README

pUZI logo

pUZI php

PHP

PHP中的UZI通行证熟练读取器。

UZI卡是荷兰医疗人员和医生的身份验证机制的一部分。这些卡片由CIBG分发。更多信息和相关客户端软件可以在www.uziregister.nl(荷兰语)找到。

pUZI是一个简单且功能性的模块,允许您将UZI卡用作身份验证机制。它包括

  1. 一个读取器,它解释卡片中间件提供的PKCS11数据,并返回一个UziUser对象(本存储库)。
  2. 中间件(目前仅适用于Laravel框架),允许基于UZI卡进行身份验证和用户创建。

有关文档、软件以及申请UZI卡,请访问www.uziregister.nl

pUZI在EU PL许可下提供。它于2021年初在COVID19运动期间作为疫苗接种注册项目BRBA的一部分为“公共健康、福利与体育部,数字化支持实现计划”而创建。

欢迎通过GitHub提问和贡献。

要求

  • PHP >= 7.4

Apache配置(或NginX等效配置)

SSLEngine on
SSLProtocol -all +TLSv1.3
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLVerifyClient require
SSLVerifyDepth 3
SSLCACertificateFile /path/to/uziCA.crt
SSLOptions +StdEnvVars +ExportCertData

安装

Composer

composer require minvws/puzi-php

手动

将以下内容添加到您的composer.json文件中,然后运行composer install

{
    "require": {
        "minvws/puzi-php": "^v2.0"
    }
}

用法

// Request from your framework/controller
$uzi = new \MinVWS\PUZI\UziReader();
$user = $uzi->getDataFromRequest($request);
print $user->getUziNumber();

// In case of no request (deprecated):
$uzi = new \MinVWS\PUZI\UziReader();
$user = $uzi->getData();

print $user->getUziNumber();
var_dump($user->toArray());
array(9) {
  'agb_code' =>
  string(8) "00000000"
  'card_type' =>
  string(1) "N"
  'given_name' =>
  string(4) "john"
  'oid_ca' =>
  string(25) "2.16.528.1.1003.1.3.5.5.2"
  'role' =>
  string(6) "01.015"
  'subscriber_number' =>
  string(6) "90000111"
  'sur_name' =>
  string(12) "doe-11111111"
  'uzi_number' =>
  string(8) "11111111"
  'uzi_version' =>
  string(1) "1"
  'serial_number' =>
  string(8) "11111111"
}

此包还允许验证请求

$allowedTypes = [
    UziConstants::UZI_TYPE_CARE_PROVIDER,
    UziConstants::UZI_TYPE_NAMED_EMPLOYEE,
];
$allowedRoles = [
    UziConstants::UZI_ROLE_DOCTOR,    
    UziConstants::UZI_ROLE_PHARMACIST,    
];

$validator = new UziValidator(new UziReader(), true, $allowedTypes, $allowedRoles);
if ($validator->isValid($request)) {
    print "Validated as doctor or pharmasist";
}

您可以使用返回布尔值的isValid(),或者当验证不正确时抛出异常的validate()

使用

被使用

替代品

贡献

  1. 复制项目

  2. 确保您已安装Composer(请参阅Composer下载说明

  3. 安装开发依赖项

    composer install
  4. 创建功能分支

  5. (推荐)运行测试套件

    vendor/bin/phpunit
  6. (推荐)通过运行来检查您的代码是否符合我们的编码标准:

    vendor/bin/phpstan analyse
    vendor/bin/psalm
    vendor/bin/phpcs
  7. 发送给我们拉取请求

pUZI