maksimovic/slim-oauth2-http

Bridge components for PSR-7 and bshaffer's OAuth2 Server http messages.

Maintainers

Package info

github.com/maksimovic/slim-oauth2-http

pkg:composer/maksimovic/slim-oauth2-http

Statistics

Installs: 12

Dependents: 3

Suggesters: 0

Stars: 0

v4.0.0 2026-03-13 08:07 UTC

README

Fork Notice: This is a maintained fork of the abandoned chadicus/slim-oauth2-http package. Updated for PHP 8.1+ with support for laminas/laminas-diactoros v3.

Static utility classes to bridge PSR-7 HTTP messages to OAuth2 Server requests and responses. While this library is intended for use with Slim, it should work with any PSR-7 compatible framework.

Requirements

Installation

composer require maksimovic/slim-oauth2-http

Usage

Convert a PSR-7 request to an OAuth2 request

use Chadicus\Slim\OAuth2\Http\RequestBridge;

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

Convert an OAuth2 response to a PSR-7 response

use Chadicus\Slim\OAuth2\Http\ResponseBridge;

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

Example Integration

Simple route for creating a new OAuth2 access token

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 PSR-7 request
    $oauth2Request = RequestBridge::toOAuth2($psrRequest);

    // Let the OAuth2 server handle the request
    $oauth2Response = $server->handleTokenRequest($oauth2Request);

    // Map the OAuth2 response to a PSR-7 response
    return ResponseBridge::fromOAuth2($oauth2Response);
});

Development

composer install
composer test
composer test:coverage
composer cs-check

License

MIT