alma-medical / keycloak-client

该包的最新版本(v1.0.8)没有可用的许可证信息。

Keycloak REST API的PHP客户端

v1.0.8 2020-01-09 11:16 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