amsi / bank-id
此软件包最新版本(1)没有可用的许可信息。
BankID NBU API 库
1
2021-12-16 13:40 UTC
Requires
- php: >=8.0.0
- guzzlehttp/guzzle: ^6.5
- league/oauth2-client: ^2.6
Requires (Dev)
- filp/whoops: ^2.13
- phpunit/phpunit: ^8.5
README
要求
您需要下载并安装 PHP 扩展 EUSPHPE。安装手册位于
- root
- EUSPHPE
- EUSignPHPDescription.doc
- EUSPHPE
PHP-FPM (PHP v. 8.0) 简明手册
- 创建目录 - /usr/lib/php/8.0/eusphpe_extension
- 将下载的存档解压到 /usr/lib/php/8.0/eusphpe_extension 目录 | 仅选择所需的文件(archive/Modules/Linux/64/eusphpei.64.8.0.3.tar)
- 将以下代码行添加到 /usr/lib/systemd/system/php8.0-fpm.service
export LD_LIBRARY_PATH=/usr/lib/php/8.0/eusphpe_extension
- 创建一个新的文件 /etc/php/8.0/fpm/conf.d/eusphpe.ini,到该文件添加
extension=/usr/lib/php/8.0/eusphpe_extension/eusphpe.so
- 为证书创建一个新的目录(例如 /data/certificates)
- 打开
/usr/lib/php/8.0/eusphpe_extension/osplm.ini
并编辑 Path 参数(例如 /data/certificates (上一步骤中的目录))。 - 打开证书目录(例如 /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
));
- 获取授权代码
if (!isset($_GET['code'])) {
$authUrl = $bankIdProvider->getAuthorizationUrl();
$_SESSION['oauth2state'] = $bankIdProvider->getState();
header(sprintf('Location: %s', $authUrl));
exit;
}
- 获取访问令牌
$token = $bankIdProvider->getAccessToken('authorization_code', [
'code' => $_GET['code']
]);
- 获取用户数据
/** @var ExpandedResourceOwnerInterface $user */ -> anotation is used to beeter code orientation
$user = $bankIdProvider->getResourceOwner($token);