stuki / oauth2-simple-client
A simply better OAuth2 Client
0.6.0
2014-12-03 15:38 UTC
Requires
- php: >=5.4.0
- guzzle/guzzle: ~3.7
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0
- squizlabs/php_codesniffer: ~1.5
README
This OAuth2 client is a simply better way to use OAuth2 in your application.
Included Providers
- Box
- Eventbrite
- Github
- Meetup
- Microsoft
About
This is a hard fork of ThePHPLeague/oauth-client and this is the offical repository for StukiOrg/oauth2-simple-client.
This simple client implements a well architected solution for OAuth2 authentication. Contributions are accepted for new OAuth2 adapters if you choose to share.
Installation
$ php composer.phar require stuki/oauth2-simple-client dev-master
ZF2 Example
use Stuki\OAuth2\Client; public function LoginAction() { $config = $this->getServiceLocator()->get('Config'); $provider = new Client\Provider\Meetup(array( 'clientId' => $config['meetup']['key'], 'clientSecret' => $config['meetup']['secret'], 'redirectUri' => $config['meetup']['redirect'], )); if ( ! $this->params()->fromQuery('code')) { // No authorization code; send user to get one // Some providers support and/or require an application state token return $this->plugin('redirect')->toUrl($provider->getAuthorizationUrl(array('state' => 'token'))); } else { try { // Get an authorization token $token = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'], ]); } catch (Client\Exception\IDPException $e) { // Handle error from oauth2 server } // Store the access and refresh token for future use $container = new Container('oauth2'); $container->accessToken = $token->accessToken; $container->refreshToken = $token->refreshToken; // Redirect to save session return $this->plugin('redirect')->toRoute('member'); } }
Refresh a Token
use Stuki\OAuth2\Client; $provider = new Client\Provider\<ProviderName>(array( 'clientId' => 'id', 'clientSecret' => 'secret', 'redirectUri' => 'https://your-registered-redirect-uri/' )); $grant = new Client\Grant\RefreshToken(); $token = $provider->getAccessToken($grant, ['refresh_token' => $refreshToken]);