srako/openid-connect
最新稳定版本:v2.0.1
Composer 安装命令:
composer require srako/openid-connect
包简介
PHP implementation of https://openid.net/specs/openid-connect-core-1_0.html
README 文档
README
PHP implementation of https://openid.net/specs/openid-connect-core-1_0.html
Install
Via Composer
$ composer require srako/openid-connect
Usage
Initialization
Using the OIDC discovery endpoint
use Srako\OpenIDConnect\ClientMetadata; use Srako\OpenIDConnect\ClientFactory; $issuerUrl = 'https://example.com'; $clientMetadata = new ClientMetadata('clientid', 'clientsecret', 'https://example.com/callback'); $client = ClientFactory::create($issuerUrl, $clientMetadata);
Manually
use Srako\OpenIDConnect\Client; use Srako\OpenIDConnect\ClientMetadata; use Srako\OpenIDConnect\Config; use Srako\OpenIDConnect\Http\HttpClientFactory; use Srako\OpenIDConnect\Token\TokenVerifierFactory; use Srako\OpenIDConnect\ProviderMetadata; $clientMetadata = new ClientMetadata('clientid', 'clientsecret', 'https://example.com/callback'); $providerMetadata = new ProviderMetadata([ ProviderMetadata::AUTHORIZATION_ENDPOINT => 'https://example.com/authorize', ProviderMetadata::TOKEN_ENDPOINT => 'https://example.com/token', // ... ]) $config = new Config($providerMetadata, $clientMetadata); $client = new Client($config, HttpClientFactory::create());
Authorization Code flow
Step 1 - Redirect the user to authorization endpoint
use Srako\OpenIDConnect\Param\AuthorizationParams; $state = bin2hex(random_bytes(8)); $_SESSION['oauth_state'] = $state; $authorizationParams = new AuthorizationParams([ AuthorizationParams::SCOPE => 'openid profile', AuthorizationParams::STATE => $state, ]); $url = $client->getAuthorizationUrl($authorizationParams); header('Location: ' . $url); exit();
Step 2 - Handle callback and exchange code for tokens
use Srako\OpenIDConnect\Param\CallbackParams; use Srako\OpenIDConnect\Param\CallbackChecks; $tokens = $client->handleCallback( new CallbackParams($_GET), new CallbackChecks($_SESSION['oauth_state']) );
Client Credentials flow
use Srako\OpenIDConnect\Grant\ClientCredentials; use Srako\OpenIDConnect\Param\TokenParams; $tokens = $client->requestTokens( new TokenParams( new ClientCredentials(), [ TokenParams::SCOPE => 'some scope' ] ) );
See examples for more
Credits
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 914
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-07-31