stuki / oauth2-simple-client
一个更简单的OAuth2客户端
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
这个OAuth2客户端是使用OAuth2的更简单、更好的方式。
包含的服务提供者
- Box
- Eventbrite
- Github
- Meetup
- Microsoft
关于
这是ThePHPLeague/oauth-client的硬分支,这是StukiOrg/oauth2-simple-client的官方仓库。
此简单客户端实现了一个良好的OAuth2认证解决方案。如果您选择分享,接受对新的OAuth2适配器的贡献。
安装
$ php composer.phar require stuki/oauth2-simple-client dev-master
ZF2 示例
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'); } }
刷新令牌
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]);