psx / oauth2
OAuth2 consumer
v4.1.0
2025-12-13 21:23 UTC
Requires (Dev)
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^12.0
README
About
This package provides an OAuth2 client implementation and it provides also common DTOs and exceptions to build an OAuth2 server implementation
Usage
Authorization code
<?php // at first for the authorization code flow you need to redirect your user to the OAuth2 server AuthorizationCode::redirect('[auth_url]', '[client_id]', '[redirect_url]'); // if the customer returns you can obtain an access token $client = new \PSX\Http\Client\Client(); $code = new \PSX\OAuth2\Authorization\AuthorizationCode($client, new Url('[token_url]')); $code->setClientPassword('[client_id]', '[client_secret]'); $accessToken = $code->getAccessToken('[redirect_url]'); // if we have an access token we can request the api using the access token $header = [ 'Authorization' => TokenAbstract::factory($accessToken)->getHeader() ]; $request = new GetRequest('[api_url]', $header); $response = $client->request($request); if ($response->getStatusCode() == 200) { // request worked }
Client credentials
<?php $client = new \PSX\Http\Client\Client(); $code = new \PSX\OAuth2\Authorization\ClientCredentials($client, new Url('[token_url]')); $code->setClientPassword('[client_id]', '[client_secret]'); $accessToken = $code->getAccessToken(); // work with the access token