dhaverd / esia
dev-master
2024-01-16 04:03 UTC
Requires
- php: ^7.1|^8.0
- ext-json: *
- guzzlehttp/guzzle: ^6.1.0|^7.0
- psr/http-client: ^1.0
- psr/http-message: ^1.0
- psr/log: ^1.0
Requires (Dev)
- codeception/codeception: ^4.0
- codeception/module-asserts: ^1.3
- roave/security-advisories: dev-latest
Suggests
- ext-openssl: SignerPKCS7 support
This package is auto-updated.
Last update: 2024-10-03 08:22:57 UTC
README
描述
“国家服务”门户的认证组件。
注意!
获取令牌后,您可以执行任何API请求。该库不支持API中的所有现有方法,而只提供最基本的方法。库的主要目的是获取令牌。
安装
使用 composer
composer require --prefer-dist fr05t1k/esia
或者将以下内容添加到 composer.json 中
"fr05t1k/esia" : "^2.0"
如何使用
获取授权链接的示例
<?php $config = new \Esia\Config([ 'clientId' => 'INSP03211', 'redirectUrl' => 'http://my-site.com/response.php', 'portalUrl' => 'https://esia-portal1.test.gosuslugi.ru/', 'scope' => ['fullname', 'birthdate'], ]); $esia = new \Esia\OpenId($config); $esia->setSigner(new \Esia\Signer\SignerPKCS7( 'my-site.com.pem', 'my-site.com.pem', 'password', '/tmp' )); ?> <a href="<?=$esia->buildUrl()?>">Войти через портал госуслуги</a>
在重定向到您的 redirectUrl
之后,您将在 $_GET['code']
中收到用于获取令牌的代码
获取令牌和用户信息的示例
$esia = new \Esia\OpenId($config); // Вы можете использовать токен в дальнейшем вместе с oid $token = $esia->getToken($_GET['code']); $personInfo = $esia->getPersonInfo(); $addressInfo = $esia->getAddressInfo(); $contactInfo = $esia->getContactInfo(); $documentInfo = $esia->getDocInfo();
配置
clientId
- 您应用程序的 ID。
redirectUrl
- 带有代码的响应将被重定向到的 URL。
portalUrl
- 默认值:https://esia-portal1.test.gosuslugi.ru/
。认证门户的域名(仅域名)。
codeUrlPath
- 默认值:aas/oauth2/ac
。获取代码的 URL。
tokenUrlPath
- 默认值:aas/oauth2/te
。获取令牌的 URL。
scope
- 默认值:fullname birthdate gender email mobile id_doc snils inn
。请求给用户的权限。
privateKeyPath
- 私钥的路径。
privateKeyPassword
- 私钥的密码。
certPath
- 证书的路径。
tmpPath
- 签名将进行的目录的路径(必须可写)。
令牌和 oid
令牌 - 从 ESIA 获取的 jwt 令牌,用于后续交互
oid - 令牌所有者的唯一标识符
如何获取 oid?
有两种方法
- oid 包含在 jwt 令牌中,通过解密它
- 获取令牌后,oid 保存到 config 中,可以按如下方式获取
$esia->getConfig()->getOid();
令牌的重用
此外,在配置中指定令牌和标识符
$config->setToken($jwt); $config->setOid($oid);