amsi/bank-id

此软件包最新版本(1)没有可用的许可信息。

BankID NBU API 库

1 2021-12-16 13:40 UTC

This package is auto-updated.

Last update: 2024-09-20 17:58:09 UTC


README

要求

您需要下载并安装 PHP 扩展 EUSPHPE。安装手册位于

  • root
    • EUSPHPE
      • EUSignPHPDescription.doc

PHP-FPM (PHP v. 8.0) 简明手册

  1. 创建目录 - /usr/lib/php/8.0/eusphpe_extension
  2. 将下载的存档解压到 /usr/lib/php/8.0/eusphpe_extension 目录 | 仅选择所需的文件(archive/Modules/Linux/64/eusphpei.64.8.0.3.tar)
  3. 将以下代码行添加到 /usr/lib/systemd/system/php8.0-fpm.service
    export LD_LIBRARY_PATH=/usr/lib/php/8.0/eusphpe_extension
  4. 创建一个新的文件 /etc/php/8.0/fpm/conf.d/eusphpe.ini,到该文件添加
    extension=/usr/lib/php/8.0/eusphpe_extension/eusphpe.so
  5. 为证书创建一个新的目录(例如 /data/certificates
  6. 打开 /usr/lib/php/8.0/eusphpe_extension/osplm.ini 并编辑 Path 参数(例如 /data/certificates (上一步骤中的目录))。
  7. 打开证书目录(例如 /data/certificates)并在其中解压此存档。 8.重启 FPM service php8.0-fpm restart

可选

为 IDE 安装 EUSPHPE stubs

第二步

composer require amsi/bankid-api

使用示例

示例文件是 authenticate.php。创建一个新的 BankIdProvider

$bankIdProvider = new BankID(  
  new Client(  
     CLIENT_ID,       // -> Client ID reciveved from NBU  
     CLIENT_SECRET,  // -> Client SECRET reciveved from NBU
     REDIRECT_URL,  // -> Redirect URL, defiened for NBU 
     $cert,        // -> file_get_contents('certificate.cer')
     $key,        // -> file_get_contents('key.day')
     CERT_PASS,  // -> Certificate password 
  new Config(Config::ENV_TEST) // -> For prod end -> new Config
 ));
  1. 获取授权代码
if (!isset($_GET['code'])) {
    $authUrl = $bankIdProvider->getAuthorizationUrl();
    $_SESSION['oauth2state'] = $bankIdProvider->getState();
    header(sprintf('Location: %s', $authUrl));
    exit;
}
  1. 获取访问令牌
$token = $bankIdProvider->getAccessToken('authorization_code', [
    'code' => $_GET['code']
]);
  1. 获取用户数据
    /** @var ExpandedResourceOwnerInterface $user */ -> anotation is used to beeter code orientation
    $user = $bankIdProvider->getResourceOwner($token);