maksimovic / slim-oauth2-http
Bridge components for PSR-7 and bshaffer's OAuth2 Server http messages.
v4.0.0
2026-03-13 08:07 UTC
Requires
- php: ^8.1
- bshaffer/oauth2-server-php: ^1.8
- laminas/laminas-diactoros: ^2.0 || ^3.0
Requires (Dev)
- phpunit/phpunit: ^10.5
- squizlabs/php_codesniffer: ^3.7
Suggests
- chadicus/slim-oauth2-middleware: Adds OAuth2 middleware for API requests.
- chadicus/slim-oauth2-routes: Offers standard OAuth2 routes for slim applications
README
Fork Notice: This is a maintained fork of the abandoned
chadicus/slim-oauth2-httppackage. Updated for PHP 8.1+ with support forlaminas/laminas-diactorosv3.
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
- PHP 8.1+
- bshaffer/oauth2-server-php ^1.8
- laminas/laminas-diactoros ^2.0 || ^3.0
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