2017 © Pedro Peláez
 

library oauth2-provider

OAuth2 provider for the Symfony Security component

image

texthtml/oauth2-provider

OAuth2 provider for the Symfony Security component

  • Friday, September 22, 2017
  • by mathroc
  • Repository
  • 1 Watchers
  • 5 Stars
  • 3,507 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 1 Open issues
  • 11 Versions
  • 0 % Grown

The README.md

Oauth2 Provider

Build Status Latest Stable Version License Total Downloads Scrutinizer Code Quality, (*1)

OAuth2 Provider is a provider for Symfony Security component that can be used to build OAuth2 protected applications, (*2)

Installation

With Composer :, (*3)

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", (*4)

$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., (*5)

PRs for providers for such frameworks are welcome!, (*6)

The Versions

03/07 2015