bokbasen / php-sdk-auth
Bokbasen API 认证服务的 PHP SDK
v3.0.1
2023-12-07 19:27 UTC
Requires
- php: >=5.6
- php-http/client-implementation: ^1.0
- php-http/discovery: ^1.0
- php-http/httplug: ^1.0|^2.0
- php-http/message: ^1.0
- psr/cache: ^1|^2|^3
- psr/log: ^1|^2|^3
Requires (Dev)
- php-http/guzzle6-adapter: ^1.0
- php-http/mock-client: ^0.3
- phpunit/phpunit: ^5
- symfony/cache: ^3
README
此 PHP SDK 使您能够轻松使用 Bokbasen 的认证服务,该服务是访问 Bokbasen 的任何 API(例如数字分发平台、元数据或订单)所必需的。Bokbasen 的 API 不是公开的,并且仅以商业条款提供,您必须拥有来自 Bokbasen 的用户名/密码才能使用此软件包。
基本软件包允许创建一个 TGT(Ticket-Granting Ticket),可用于进一步登录 API 服务。该软件包还提供了一个缓存 TGT 的接口,以便可以更有效地获取,只有在 TGT 即将过期时才更新 TGT。在生产环境中,这强烈推荐使用。API 文档可在 此页 上找到。
HTTP 客户端
SDK 依赖于虚拟包 php-http/client-implementation,它要求您安装一个适配器,但我们不关心是哪一个。这是您应用程序中的一个实现细节。我们还需要一个 PSR-7 实现和一个消息工厂。
这基于 PHP-HTTP,它提供了一个与实现无关的插件系统,用于构建管道,无论使用哪种 HTTP 客户端实现。所以基本上,您可以插入您想使用的任何 HTTP 实现。
我不在乎,我只希望它能工作!
通过向您的项目添加兼容的 HTTP 适配器,SDK 将自动检测软件包并使用此适配器。只要您不需要注入任何特定的 HTTP 设置(如代理设置等),这将正常工作。
$ composer require php-http/guzzle6-adapter
自动检测客户端和 TGT 缓存
在生产环境中,您应始终使用缓存功能。不这样做可能会给 Bokbasen API 的响应时间带来显著的性能影响。您可以使用任何 PSR-6 兼容的软件包来缓存 TGT。以下示例使用 Symfony 的文件缓存。
<?php use Bokbasen\Auth\Login; use Symfony\Component\Cache\Adapter\FilesystemAdapter; try{ $cache = new FilesystemAdapter(); $auth = new Login('my_username', 'my_password', Login::URL_PROD, $cache); //If the TGT is cached, the SDK will only call the Bokbasen login server when the token is set to expire } catch(\Exception $e){ //error handling } ?>
使用注入的 HTTP 客户端
<?php use Bokbasen\Auth\Login; try{ //just an example, any client implementing \Http\Client\HttpClient\HttpClient will work $client = new \Http\Adapter\Guzzle6\Client(); $auth = new Login('my_username', 'my_password', Login::URL_PROD, null, null, $client); } catch(\Exception $e){ //error handling } ?>