bokbasen/php-sdk-auth

Bokbasen API 认证服务的 PHP SDK

v3.0.1 2023-12-07 19:27 UTC

This package is not auto-updated.

Last update: 2024-09-27 11:56:34 UTC


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
}
?>