chadicus/slim-oauth2-http

Bridge components for PSR-7 and bshaffer's OAuth2 Server http messages.

Maintainers

👁 chadicus

Package info

github.com/chadicus/slim-oauth2-http

pkg:composer/chadicus/slim-oauth2-http

Statistics

Installs: 466 158

Dependents: 7

Suggesters: 0

Stars: 18

Open Issues: 2

v3.2.0 2023-05-09 18:48 UTC

Requires

Requires (Dev)

Suggests

Provides

None

Conflicts

None

Replaces

None

MIT 50bee83461ece595a42fc199f99df9588be03c16

httpoauth2responsemessagerequestBridgeslimpsr7


README

👁 Build Status
👁 Code Quality
👁 Code Coverage

👁 Latest Stable Version
👁 Latest Unstable Version
👁 License

👁 Total Downloads
👁 Daily Downloads
👁 Monthly Downloads

👁 Documentation

Static utilitiy classes to bridge PSR-7 http messages to OAuth2 Server requests and responses. While this libray is entended for use with Slim 3, it should work with any PSR-7 compatible framework.

Requirements

Chadicus\Slim\OAuth2\Http requires PHP 5.6 (or later).

Composer

To add the library as a local, per-project dependency use Composer! Simply add a dependency on chadicus/slim-oauth2-http to your project's composer.json file such as:

composer require chadicus/slim-oauth2-http

Contact

Developers may be contacted at:

Project Build

With a checkout of the code get Composer in your PATH and run:

composer install
./vendor/bin/phpunit
./vendor/bin/phpcs

Community

👁 Gitter

Available Operations

Convert a PSR-7 request to an OAuth2 request

use Chadicus\Slim\OAuth2\Http\RequestBridge;

$oauth2Request = RequestBridge::toOAuth2($psrRequest);

Convert an OAuth2 response to a PSR-7 response.

use Chadicus\Slim\OAuth2\Http\ResponseBridge;

$psr7Response = ResponseBridge::fromOAuth2($oauth2Request);

Example Integeration

Simple route for creating a new oauth2 access token

use Chadicus\Slim\OAuth2\Http\RequestBridge;
use Chadicus\Slim\OAuth2\Http\ResponseBridge;
use OAuth2;
use OAuth2\GrantType;
use OAuth2\Storage;
use Slim;

$storage = new Storage\Memory(
 [
 'client_credentials' => [
 'testClientId' => [
 'client_id' => 'testClientId',
 'client_secret' => 'testClientSecret',
 ],
 ],
 ]
);

$server = new OAuth2\Server(
 $storage,
 [
 'access_lifetime' => 3600,
 ],
 [
 new GrantType\ClientCredentials($storage),
 ]
);

$app = new Slim\App();

$app->post('/token', function ($psrRequest, $psrResponse, array $args) use ($app, $server) {
 //create an \OAuth2\Request from the current \Slim\Http\Request Object
 $oauth2Request = RequestBridge::toOAuth2($psrRequest);

 //Allow the oauth2 server instance to handle the oauth2 request
 $oauth2Response = $server->handleTokenRequest($oauth2Request),

 //Map the oauth2 response into the slim response
 return ResponseBridge::fromOAuth2($oauth2Response);
});