schibsted / account-sdk-php
为 Schibsted 账户提供的 OAuth2 客户端
0.3.0
2023-04-18 07:41 UTC
Requires
- league/oauth2-client: ^2.7
Requires (Dev)
- phpunit/phpunit: ^9.6
- squizlabs/php_codesniffer: ^3.7
This package is auto-updated.
Last update: 2024-09-18 10:37:43 UTC
README
此包为 PHP League 的 OAuth 2.0 客户端 提供Schibsted OAuth 2.0 支持。
安装
要安装,请使用 composer
composer require schibsted/account-sdk-php
用法
用法与 The League 的 OAuth 客户端相同,使用 Schibsted\OAuth2\Client\Provider\Schibsted
作为提供者。
授权码流
您必须向提供者提供一些参数
- 域名
- 描述:要使用的 Schibsted 账户域名,例如 https://login.schibsted.com
- 客户端ID
- 描述:提供者分配给您的客户端 ID
- 客户端密钥
- 描述:提供者分配给您的客户端密码
- 重定向URI
$provider = new Schibsted\OAuth2\Client\Provider\Schibsted([ 'domain' => '{domain}', 'clientId' => '{schibsted-client-id}', 'clientSecret' => '{schibsted-client-secret}', 'redirectUri' => 'https://example.com/callback-url' ]); // Fetch a client token $token = $provider->getAccessToken('client_credentials'); // Fetch a user token from authorization code $token = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]); // Fetch Resource owner from user token $user = $provider->getResourceOwner($token); // Make an API request to Schibsted account $req = $provider->getAuthenticatedRequest('GET', 'user/1', $token); $res = $provider->getParsedResponse($req); // or to your own service, using the Schibsted account token that you can introspect locally $req = $provider->getAuthenticatedRequest('GET', 'https://myapi.com/resource/1', $token); $res = $provider->getParsedResponse($req); // Refreshing a token if ($token->hasExpired()) { $token = $provider->getAccessToken('refresh_token', [ 'refresh_token' => $token->getRefreshToken() ]); }