dev-master
9999999-dev https://github.com/icehero/silex-opauthOpauth silex framework service provider.
The Requires
The Development Requires
by Florin Popa
oauth opauth silex
Wallogit.com
2017 © Pedro Peláez
Opauth silex framework service provider.
// Configure opauth
$app['opauth'] = array(
'login' => '/auth',
'callback' => '/auth/callback',
'config' => array(
'security_salt' => '...your salt...',
'Strategy' => array(
'Facebook' => array(
'app_id' => '...',
'app_secret' => '...'
),
)
)
);
// Enable extension
$app->register(new OpauthExtension());
// Listen for events
$app->on(OpauthExtension::EVENT_ERROR, function($e) {
$this->log->error('Auth error: ' . $e['message'], ['response' => $e->getSubject()]);
$e->setArgument('result', $this->redirect('/'));
});
$app->on(OpauthExtension::EVENT_SUCCESS, function($e) {
$response = $e->getSubject();
/*
find/create a user, oauth response is in $response and it's already validated!
store the user in the session
*/
$e->setArgument('result', $this->redirect('/'));
});
Note, that you can use it in symfony2 projects too!, (*1)
To login using opauth use /login/PROVIDER, or use opauth_default_login route with provider parameter., (*2)
$app->register(new OpauthSilexProvider()); $app->register(new SecurityServiceProvider(), array( 'security.firewalls' => array( 'default' => array( 'pattern' => '^/.*', 'opauth' => array( // 'check_path' => '/login/opauth', //default 'opauth' => [ // 'path' => '/login', //default 'security_salt' => '...your salt...', 'Strategy' => [ // your opauth strategies go here ] ] ), 'anonymous' => true, ), ) );
By default, users will be looked up by username "provider:uid"., (*3)
You should extend your user provider to handle OPauth results correctly by implementing OpauthUserProviderInterface., (*4)
Opauth silex framework service provider.
oauth opauth silex