chadicus/slim-oauth2-http

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

v3.1.3 2017-01-10 18:33 UTC

README

Build Status Code Quality Code Coverage Dependency Status Reference Status

Latest Stable Version Latest Unstable Version License

Total Downloads Daily Downloads Monthly Downloads

Documentation

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.

Requirements

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

ontact

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);
});