Static utilitiy classes to bridge PSR-7 http messages to OAuth2 Server requests and responses. While this libray is entended for use with Slim 3, it should work with any PSR-7 compatible framework.
Chadicus\Slim\OAuth2\Http requires PHP 5.6 (or later).
##Composer
To add the library as a local, per-project dependency use Composer! Simply add a dependency on chadicus/slim-oauth2-http
to your project's composer.json
file such as:
composer require chadicus/slim-oauth2-http
##Contact Developers may be contacted at:
##Project Build With a checkout of the code get Composer in your PATH and run:
composer install
./vendor/bin/phpunit
./vendor/bin/phpcs --standard=./vendor/chadicus/coding-standard/Chadicus -n src
##Available Operations
###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($oauth2Request);
##Example Integeration
###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 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);
});