chadicus/slim-oauth2-http

PSR-7 和 bshaffer 的 OAuth2 Server http 消息的桥梁组件。

v3.2.0 2023-05-09 18:48 UTC

README

Build Status Code Quality Code Coverage

Latest Stable Version Latest Unstable Version License

Total Downloads Daily Downloads Monthly Downloads

Documentation

将 PSR-7 http 消息桥接到 OAuth2 请求和响应的静态工具类。虽然这个库主要用于与 Slim 3 一起使用,但它应该与任何 PSR-7 兼容的框架一起工作。

要求

Chadicus\Slim\OAuth2\Http 需要 PHP 5.6(或更高版本)。

Composer

要作为本地项目依赖项添加库,请使用 Composer!只需将 chadicus/slim-oauth2-http 添加到您的项目 composer.json 文件中的依赖项中,例如

composer require chadicus/slim-oauth2-http

联系

开发者可通过以下方式联系

项目构建

通过检出代码,在您的 PATH 中获取 Composer 并运行

composer install
./vendor/bin/phpunit
./vendor/bin/phpcs

社区

Gitter

可用操作

将 PSR-7 请求转换为 OAuth2 请求

use Chadicus\Slim\OAuth2\Http\RequestBridge;

$oauth2Request = RequestBridge::toOAuth2($psrRequest);

将 OAuth2 响应转换为 PSR-7 响应。

use Chadicus\Slim\OAuth2\Http\ResponseBridge;

$psr7Response = ResponseBridge::fromOAuth2($oauth2Request);

示例集成

创建新的 OAuth2 访问令牌的简单路由

use Chadicus\Slim\OAuth2\Http\RequestBridge;
use Chadicus\Slim\OAuth2\Http\ResponseBridge;
use OAuth2;
use OAuth2\GrantType;
use OAuth2\Storage;
use Slim;

$storage = new Storage\Memory(
    [
        'client_credentials' => [
            'testClientId' => [
                'client_id' => 'testClientId',
                'client_secret' => 'testClientSecret',
            ],
        ],
    ]
);

$server = new OAuth2\Server(
    $storage,
    [
        'access_lifetime' => 3600,
    ],
    [
        new GrantType\ClientCredentials($storage),
    ]
);

$app = new Slim\App();

$app->post('/token', function ($psrRequest, $psrResponse, array $args) use ($app, $server) {
    //create an \OAuth2\Request from the current \Slim\Http\Request Object
    $oauth2Request = RequestBridge::toOAuth2($psrRequest);

    //Allow the oauth2 server instance to handle the oauth2 request
    $oauth2Response = $server->handleTokenRequest($oauth2Request),

    //Map the oauth2 response into the slim response
    return ResponseBridge::fromOAuth2($oauth2Response);
});