minvws / puzi-php
用于从UZI通行证读取数据的PHP库。
v2.3.1
2023-02-27 18:04 UTC
Requires
- php: >=7.4
- ext-json: *
- phpseclib/phpseclib: ^3.0.5
- psr/http-message: ^1.0
Requires (Dev)
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
- symfony/http-foundation: ^5
- vimeo/psalm: ^4
Suggests
- ext-gmp: Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.
- ext-openssl: Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations.
This package is auto-updated.
Last update: 2024-09-08 18:09:08 UTC
README
pUZI php
PHP中的UZI通行证熟练读取器。
UZI卡是荷兰医疗人员和医生的身份验证机制的一部分。这些卡片由CIBG分发。更多信息和相关客户端软件可以在www.uziregister.nl(荷兰语)找到。
pUZI是一个简单且功能性的模块,允许您将UZI卡用作身份验证机制。它包括
- 一个读取器,它解释卡片中间件提供的PKCS11数据,并返回一个UziUser对象(本存储库)。
- 中间件(目前仅适用于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()
。
使用
- phpseclib - PHP安全通信库
被使用
- puzi-laravel - 用于Laravel 8或更高版本的Laravel包装器,用于熟练的UZI通行证读取器
- puzi-auth-bundle - 用于Symfony 4或更高版本的UZI身份验证包
替代品
- Python - pUZI-python
- Go - go-uzi-middleware
- .NET - UZI卡身份验证服务器
贡献
-
复制项目
-
确保您已安装Composer(请参阅Composer下载说明)
-
安装开发依赖项
composer install
-
创建功能分支
-
(推荐)运行测试套件
vendor/bin/phpunit
-
(推荐)通过运行来检查您的代码是否符合我们的编码标准:
vendor/bin/phpstan analyse vendor/bin/psalm vendor/bin/phpcs
-
发送给我们拉取请求