conduction / id-vault-php
ID-Vault功能的库
dev-main
2021-03-26 13:26 UTC
Requires
- php: ^7.4.0
- guzzlehttp/guzzle: ^6.3
This package is auto-updated.
Last update: 2024-09-26 22:04:36 UTC
README
要求
要使用id-Vault API客户端,需要以下东西
- 获取id-Vault账户。并确保您已经设置了一个组织和应用程序。
- PHP >= 7.1.3
Composer安装
迄今为止,安装id-Vault API客户端最简单的方法是通过Composer来要求它。
$ composer require conduction/id-vault-php:dev-main
{
"require": {
"conduction/id-vault-php": "dev-main"
}
}
入门
初始化id-Vault API客户端。
$idVault = new \Conduction\IdVaultApi\IdVaultApiClient();
发送电子邮件
此功能允许我们通过id-vault发送邮件。
$body = '<p> test mail </p>'; $mail = $idVault->sendMail('62817d5c-0ba5-4aaa-81f2-ad0e5a763cd4', $body, 'test mail', 'gino@conduction.nl', 'no-reply@id-vault.com');
为了使此功能正常工作,您必须确保您的mailgun密钥在id-vault应用程序中可用。然后,该函数将使用Mailgun密钥将电子邮件发送到提供的收件人。
确保您提供了有效的HTML邮件正文。
用户认证
我们可以使用$idVault->authenticateUser();
从id-Vault检索用户信息。我们通过向该函数提供以下内容来实现这一点
- 由
https://id-vault.com/oauth
端点提供的代码。 - 应用程序ID。
- 应用程序密钥。
- (可选)状态。
$user = $idVault->authenticateUser('fecbf5ca-a28b-41a1-8e6a-77e8f8939710', '05dd458d-9f33-4f16-9ec3-8d7f0a3b0791', '024a820d-860c-4ad5-b4c7-e507334e949f');
这将返回以下JSON对象
{ "tokenType": "bearer", "expiresIn": "3600", "scope": "schema.person.email+schema.person.given_name+schema.person.family_name", "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI0NTVmNzgyZS00YjJkLTRjYmItYWU4My02ZTI5N2UyNWZlZjkiLCJuYW1lIjoiTWFybGVlbiBSb21pam4iLCJlbWFpbCI6Im1hcmxlZW5yb21pam43M0BnbWFpbC5jb20iLCJnaXZlbl9uYW1lIjoiTWFybGVlbiIsImZhbWlseV9uYW1lIjoiUm9taWpuIiwiY2xhaW1zIjp7InNjaGVtYS5wZXJzb24uZW1haWwiOlt7ImVtYWlsIjoibWFybGVlbnJvbWlqbjczQGdtYWlsLmNvbSJ9XSwic2NoZW1hLnBlcnNvbi5naXZlbl9uYW1lIjpbeyJnaXZlbl9uYW1lIjoiTWFybGVlbiJ9XSwic2NoZW1hLnBlcnNvbi5mYW1pbHlfbmFtZSI6W3siZmFtaWx5X25hbWUiOiJSb21pam4ifV19LCJpc3MiOiI0NTVmNzgyZS00YjJkLTRjYmItYWU4My02ZTI5N2UyNWZlZjkiLCJhdWQiOiJodHRwczpcL1wvZGV2LmNoZWNraW5nLm51XC91c2Vyc1wvYXV0aFwvaWR2YXVsdCIsImV4cCI6IjM2MDAiLCJqdGkiOiIxMDMzYzFmMy1hNzhkLTQ0Y2ItYWQxMy0zZjg4OGUwNzA0MTEiLCJhbGciOiJIUzI1NiIsImlhdCI6MTYwNzUxOTczMn0.Psq2XnCrgIgNQ-R4PHvctmCgC-VUhjBBNUFasHB0lAE", "state": "XXXX-XXXX-XXXX-XXXX", "newUser": true }
在此JSON对象中,access_token是一个JWT令牌,其中包含请求的用户信息。
看起来像这样
{ "sub": "455f782e-4b2d-4cbb-ae83-6e297e25fef9", "name": "test person", "email": "testperson@gmail.com", "given_name": "test", "family_name": "person", "claims": { "schema.person.email": [ { "email": "testperson@gmail.com" } ], "schema.person.given_name": [ { "given_name": "Test" } ], "schema.person.family_name": [ { "family_name": "Person" } ] }, "iss": "455f782e-4b2d-4cbb-ae83-6e297e25fef9", "aud": "https://checking.nu/users/auth/idvault", "exp": "3600", "jti": "1033c1f3-a78d-44cb-ad13-3f888e070411", "alg": "HS256", "iat": 1607519732 }
创建档案
使用此函数,我们可以为id-vault用户创建一个档案。
我们通过向函数提供以下内容来实现这一点
- 此档案所需的范围数组(范围必须由id-vault用户授权)。
- id-vault提供的访问令牌。
- 档案的名称。
- 档案的目标。
- 档案的过期日期。
- 用户可以找到档案的URL。
- (可选)档案的描述。
- 档案是否基于法律。
$scopes = ['schema.person.family_name', 'schema.person.given_name']; $accesToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI0NTVmNzgyZS00YjJkLTRjYmItYWU4My02ZTI5N2UyNWZlZjkiLCJuYW1lIjoiTWFybGVlbiBSb21pam4iLCJlbWFpbCI6Im1hcmxlZW5yb21pam43M0BnbWFpbC5jb20iLCJnaXZlbl9uYW1lIjoiTWFybGVlbiIsImZhbWlseV9uYW1lIjoiUm9taWpuIiwiY2xhaW1zIjp7InNjaGVtYS5wZXJzb24uZW1haWwiOlt7ImVtYWlsIjoibWFybGVlbnJvbWlqbjczQGdtYWlsLmNvbSJ9XSwic2NoZW1hLnBlcnNvbi5naXZlbl9uYW1lIjpbeyJnaXZlbl9uYW1lIjoiTWFybGVlbiJ9XSwic2NoZW1hLnBlcnNvbi5mYW1pbHlfbmFtZSI6W3siZmFtaWx5X25hbWUiOiJSb21pam4ifV19LCJpc3MiOiI0NTVmNzgyZS00YjJkLTRjYmItYWU4My02ZTI5N2UyNWZlZjkiLCJhdWQiOiJodHRwczpcL1wvZGV2LmNoZWNraW5nLm51XC91c2Vyc1wvYXV0aFwvaWR2YXVsdCIsImV4cCI6IjM2MDAiLCJqdGkiOiIxMDMzYzFmMy1hNzhkLTQ0Y2ItYWQxMy0zZjg4OGUwNzA0MTEiLCJhbGciOiJIUzI1NiIsImlhdCI6MTYwNzUxOTczMn0.Psq2XnCrgIgNQ-R4PHvctmCgC-VUhjBBNUFasHB0lAE"; $user = $idVault->createDossier($scopes, $accesToken, 'employee file', 'document employee', '05-12-2021 12:00', 'https://test.com/dossiers', 'this is your employee file', false);
函数返回id-Vault的响应,作为数组。
然后,id-vault用户将收到通知,表示已将其账户添加了档案,并可以在仪表板上查看该档案。
获取范围
使用此函数,我们可以从当前具有有效授权的用户请求额外范围。
我们通过向函数提供以下内容来实现这一点
- 我们希望从用户请求的范围数组。
- id-vault提供的访问令牌。
$scopes = ['schema.person.family_name', 'schema.person.given_name']; $accesToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI0NTVmNzgyZS00YjJkLTRjYmItYWU4My02ZTI5N2UyNWZlZjkiLCJuYW1lIjoiTWFybGVlbiBSb21pam4iLCJlbWFpbCI6Im1hcmxlZW5yb21pam43M0BnbWFpbC5jb20iLCJnaXZlbl9uYW1lIjoiTWFybGVlbiIsImZhbWlseV9uYW1lIjoiUm9taWpuIiwiY2xhaW1zIjp7InNjaGVtYS5wZXJzb24uZW1haWwiOlt7ImVtYWlsIjoibWFybGVlbnJvbWlqbjczQGdtYWlsLmNvbSJ9XSwic2NoZW1hLnBlcnNvbi5naXZlbl9uYW1lIjpbeyJnaXZlbl9uYW1lIjoiTWFybGVlbiJ9XSwic2NoZW1hLnBlcnNvbi5mYW1pbHlfbmFtZSI6W3siZmFtaWx5X25hbWUiOiJSb21pam4ifV19LCJpc3MiOiI0NTVmNzgyZS00YjJkLTRjYmItYWU4My02ZTI5N2UyNWZlZjkiLCJhdWQiOiJodHRwczpcL1wvZGV2LmNoZWNraW5nLm51XC91c2Vyc1wvYXV0aFwvaWR2YXVsdCIsImV4cCI6IjM2MDAiLCJqdGkiOiIxMDMzYzFmMy1hNzhkLTQ0Y2ItYWQxMy0zZjg4OGUwNzA0MTEiLCJhbGciOiJIUzI1NiIsImlhdCI6MTYwNzUxOTczMn0.Psq2XnCrgIgNQ-R4PHvctmCgC-VUhjBBNUFasHB0lAE"; $user = $idVault->getScopes($scopes, $accesToken);
函数返回id-Vault的响应,作为数组。
然后,id-vault用户将收到通知,表示您的应用程序正在请求额外范围。用户将批准新范围或拒绝它们。
API文档
如果您想了解更多关于我们API的信息,请访问id-Vault文档。API文档可用英文。
许可证
版权(c) 2018 版权所有。由Conduction倾情打造。