eko / authz-sdk
Authz PHP SDK
v0.0.1
2023-01-14 15:17 UTC
Requires
- google/protobuf: ^3.21
- grpc/grpc: ^1.42
This package is auto-updated.
Last update: 2024-09-07 08:19:58 UTC
README
这是 Authz 的 PHP 开发工具包。
安装
您可以通过添加以下依赖项将 SDK 安装到您的项目中:
$ composer require eko/authz-sdk
⚠️ 注意,您需要安装 grpc
PHP 扩展。
使用方法
您需要在代码中通过以下方式实例化一个新的 Authz 客户端:
<?php use Eko\AuthzSdk\Client; $client = new Client('localhost:8081', '<client_id>', '<client_secret>');
一旦客户端被实例化,您就可以访问所有的 gRPC 方法。
为了创建一个新的 Principal,您可以使用:
[$response, $status] = $client->PrincipalCreate(new PrincipalCreateRequest([ 'id' => 'user-123', 'attributes' => [ new Attribute(['key' => 'email', 'value' => 'johndoe@acme.tld']), ], ]))->wait();
声明一个新的资源
[$response, $status] = $client->ResourceCreate(new ResourceCreateRequest([ 'id' => 'post.123', 'kind' => 'post', 'value' => '123', 'attributes' => [ new Attribute(['key' => 'owner_email', 'value' => 'johndoe@acme.tld']), ], ]))->wait();
您也可以这样声明一个新的策略
[$response, $status] = $client->PolicyCreate(new PolicyCreateRequest([ 'id' => 'post-owners', 'resources' => ['post.*'], 'actions' => ['edit', 'delete'], 'attribute_rules' => [ 'principal.email == resource.owner_email', ], ]))->wait();
然后,您可以执行以下检查:
if ($client->IsAllowed('user-123', 'post', '123', 'edit')) { // Do something }
请注意,您可以通过以下方式访问所有在 proto 文件中声明的 gRPC 方法 此处。
配置
此 SDK 通过 gRPC 连接到后端服务。以下是可用的配置选项