Skip to content

traal-devel/slim-oauth2-middleware

This branch is 1 commit ahead of, 57 commits behind chadicus/slim-oauth2-middleware:master.

Folders and files

NameName
Last commit message
Last commit date
May 22, 2016
Jun 25, 2017
Mar 20, 2017
Dec 1, 2016
Sep 29, 2016
Jul 15, 2015
May 22, 2016
Sep 29, 2016
Jan 3, 2017
Mar 20, 2017
Jan 9, 2017
Jan 10, 2017
Jul 15, 2015

Repository files navigation

Chadicus\Slim\OAuth2\Middleware

Build Status Code Quality Code Coverage Dependency Status Reference Status

Latest Stable Version Latest Unstable Version License

Total Downloads Daily Downloads Monthly Downloads

Documentation

Middleware for using OAuth2 Server within a Slim 3 Framework API

Requirements

Chadicus\Slim\OAuth2\Middleware 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-middleware to your project's composer.json file such as:

composer require chadicus/slim-oauth2-middleware

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

Example Usage

Simple example for using the authorization middleware.

use Chadicus\Slim\OAuth2\Middleware;
use OAuth2;
use OAuth2\Storage;
use OAuth2\GrantType;
use Slim;

//set up storage for oauth2 server
$storage = new Storage\Memory(
    [
        'client_credentials' => [
            'administrator' => [
                'client_id' => 'administrator',
                'client_secret' => 'password',
                'scope' => 'superUser',
            ],
            'foo-client' => [
                'client_id' => 'foo-client',
                'client_secret' => 'p4ssw0rd',
                'scope' => 'basicUser canViewFoos',
            ],
            'bar-client' => [
                'client_id' => 'foo-client',
                'client_secret' => '!password1',
                'scope' => 'basicUser',
            ],
        ],
    ]
);

// create the oauth2 server
$server = new OAuth2\Server(
    $storage,
    [
        'access_lifetime' => 3600,
    ],
    [
        new GrantType\ClientCredentials($storage),
    ]
);

//create the basic app
$app = new Slim\App();

// create the authorization middlware
$authMiddleware = new Middleware\Authorization($server, $app->getContainer());

//Assumes token endpoints available for creating access tokens

$app->get('foos', function ($request, $response, $args) {
    //return all foos, no scope required
})->add($authMiddleware);

$getRouteCallback = function ($request, $response, $id) {
    //return details for a foo, requires superUser scope OR basicUser with canViewFoos scope
};

$app->get('foos/id', $getRouteCallback)->add($authMiddleware->withRequiredScope(['superUser', ['basicUser', 'canViewFoos']]));

$postRouteCallback = function ($request, $response, $args) {
    //Create a new foo, requires superUser scope
};

$app->post('foos', $postRouteCallback)->add($authMiddleware->withRequiredScope(['superUser']));

$app->run();

About

Middleware for Using OAuth2 within a Slim Framework API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%