alma-medical / keycloak-client
该包的最新版本(v1.0.8)没有可用的许可证信息。
Keycloak REST API的PHP客户端
v1.0.8
2020-01-09 11:16 UTC
Requires
- psr/simple-cache: ^1.0
- stevenmaguire/oauth2-keycloak: ^2.1
- symfony/cache: ^4.4.0|^5.0
- symfony/http-client: ^4.4.0|^5.0
Requires (Dev)
- phpunit/phpunit: ^8
This package is not auto-updated.
Last update: 2024-09-27 10:42:28 UTC
README
此包提供了一个Keycloak REST API的PHP包装器。
安装
使用以下命令将Keycloak REST API客户端集成到现有项目中
composer require alma-medical/keycloak-client
如何使用
首先,我们需要为Keycloak的身份验证配置一个oauth2提供者。为此,我们使用stevenmaguire/oauth2-keycloak包,这是一个league/oauth2-client Keycloak提供者。以下是如何做到这一点的示例
use Stevenmaguire\OAuth2\Client\Provider\Keycloak as KeycloakProvider; $provider = new KeycloakProvider([ 'authServerUrl' => 'https://my-keycloak.com/auth', 'clientId' => 'myClientId', 'clientSecret' => 'myCleintSecret', 'realm' => 'myRealm', ]);
一旦我们有了提供者实例,我们需要创建一个API客户端
use AlmaMedical\KeycloakClient\Keycloak; $client = new Keycloak($provider);
现在我们可以使用callMedthod()
函数调用任何API方法
$response = $client->callMethod('users');
为了更容易地解析响应,实现了一些方法
获取用户
此方法获取所有用户
use AlmaMedical\KeycloakClient\Method\GetUsers; $getUsers = new GetUsers($client); $users = $getUsers->call();
获取单个用户
此方法获取单个用户
use AlmaMedical\KeycloakClient\Method\GetUser; $getUsers = new GetUser($client, 'user_id'); $user = $getUsers->call();
缓存
您可以使用Psr\Cache\CacheItemPoolInterface
来缓存Keycloak令牌。要使用它,只需设置您的CacheItemPoolInterface
,客户端将使用它
use Symfony\Component\Cache\Adapter\FilesystemAdapter; $client->setCachePool(new FilesystemAdapter());
运行测试
要运行测试,请运行以下命令
./vendor/bin/phpunit