Skip to content

Bridge components for slim and oauth2 http messages.

License

Notifications You must be signed in to change notification settings

pawmart/slim-oauth2-http

 
 

Repository files navigation

Chadicus\Slim\OAuth2\Http

Build Status Code Quality Code Coverage Dependency Status

Latest Stable Version Latest Unstable Version License

Total Downloads Daily Downloads Monthly Downloads

Documentation

Static utilitiy classes to bridge Slim 3 http messages to OAuth2 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:

{
    "require": {
        "chadicus/slim-oauth2-http": "~3.0"
    }
}

##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

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

About

Bridge components for slim and oauth2 http messages.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%