texthtml/oauth2-provider

OAuth2 provider for the Symfony Security component

v1.5.1 2016-10-26 16:27 UTC

This package is auto-updated.

Last update: 2024-04-24 19:35:15 UTC


README

Build Status Latest Stable Version License Total Downloads Scrutinizer Code Quality

OAuth2 Provider is a provider for Symfony Security component that can be used to build OAuth2 protected applications

Installation

With Composer :

composer require texthtml/oauth2-provider

Usage with Silex 2

There is a Pimple provider you can use to secure Silex apps. You need to install Silex 2: composer require silex/silex "^2.0"

$app = new Silex\Application;

$oAuth2Provider = new TH\OAuth2\Pimple\OAuth2ServerProvider;
$app['security.entry_point.api.oauth2.realm'] = 'My App';
$app->register($oAuth2Provider, [
    'oauth2_server.storage.client' => function () use ($config) {
        return new TH\OAuth2\Storage\Memory\ClientMemoryStorage([
            'NICE_DEV_CLIENT' => [
                'name' => 'Nice Dev Client',
                'redirect_uri' => 'http://..../my_oauth2_callback',
            ],
        ]);
    },
    'oauth2_server.storage.pdo_connection' => function(Application $app) {
        return new PDO('...');
    },
]);
$app->mount('/auth/', $oAuth2Provider);

$app['users.provider'] = [
    // raw password is foo
    'admin' => array('ROLE_ADMIN', '5FZ2Z8QIkA7UTZ4BYkoC+GsReLf569mSKDsfods6LYQ8t+a8EW9oaircfMpmaLbPBh4FOBiiFyLfuZmTSUwzZg=='),
];

$app->register(new Silex\Provider\SecurityServiceProvider, [
    'security.firewalls' => [
        'oauth.token' => [
            'pattern' => '^/auth/token',
            'security' => false,
        ],
        'oauth.authorize' => [
            'pattern' => '^/auth/authorize',
            'http' => true,
            'users' => $app['users.provider'],
        ],
        'api' => [
            'pattern' => '^/api',
            'stateless' => true,
            'oauth2' => true,
            'security' => true,
            'users' => $app['users.provider'],
        ],
    ],
]);

Usage with other frameworks

This package can be used with any framework using the Symfony Security component (eg: Symfony, Laravel, Silex, etc.). But the provider TH\OAuth2\Pimple\OAuth2ServerProvider only works for Silex 2. For other frameworks you'll have to manually register the services and mount the routes.

PRs for providers for such frameworks are welcome!