bmatovu/oauth-negotiator

OAuth2 客户端令牌管理器。

v2.1.0 2022-03-26 13:30 UTC

This package is auto-updated.

Last update: 2024-09-26 18:56:13 UTC


README

Total Downloads Latest Stable Version License

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...

实际的文档仍在进行中,但现在您可以 查看测试