bmatovu / oauth-negotiator
OAuth2 客户端令牌管理器。
v2.1.0
2022-03-26 13:30 UTC
Requires
- php: ^7.2.5 || ^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.4
- mockery/mockery: ^1.4
- phpunit/phpunit: ^8.5.5
Suggests
- monolog/monolog: For comprehensive logging.
README
OAuth negotiator 是一个 PHP Guzzle HTTP v6.x 客户端 中间件,它将帮助您在向 OAuth2 服务器发送应用程序请求时自动获取和刷新访问令牌,这样您就不必担心不存在的或过期的访问令牌。
该包通过拦截每个请求来实现。
- 首先,检查请求是否有授权头;如果有,则继续执行请求。
- 如果请求没有设置授权头,则将存储中可用的访问令牌添加为请求的授权头。
- 如果存储中没有访问令牌,则将使用指定的主要授权类型从 OAuth 服务器请求新的访问令牌。
- 如果存储中存在现有的访问令牌,但已过期,并且指定了刷新令牌授权,则将尝试使用可用的刷新令牌刷新过期的访问令牌。
请参阅 流程图 以了解详细的流程说明。
授权类型
该包默认支持四种授权类型,即:客户端凭据、刷新令牌、密码和授权代码授权类型*。
您可以通过简单地实现 GrantTypeInterface
来实现自己的自定义授权类型。
令牌
这些是与从 OAuth 服务器获得的实际访问令牌的对象映射。它们实现了 TokenInterface
。
令牌存储
该包默认使用基于文件的持久令牌存储,但您仍然可以通过实现 TokenRepositoryInterface
来实现自己的自定义持久存储,例如基于会话的令牌存储。
异常
- 当出现未知令牌时,令牌存储库抛出
TokenNotFoundException
。 - 当授权类型在获取访问令牌失败时抛出
TokenRequestException
。
源代码 文档
安装
可以通过 composer 安装此包。
composer require bmatovu/oauth-negotiator
使用
使用 composer 自动加载包,以便它在您的应用程序范围内可用。
<?php require __DIR__ . '/../vendor/autoload.php'; // do something...
实际的文档仍在进行中,但现在您可以 查看测试。