Skip to content

anthonyp/oauth2-server-httpfoundation-bridge

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

oauth2-server-httpfoundation-bridge

A bridge to HttpFoundation for oauth2-server-php.

oauth2-server-httpfoundation-bridge is a wrapper for oauth2-server-php which returns HttpFoundation\Response instead of OAuth2_Response, and uses HttpFoundation\Request instead of OAuth2_Request. If you are integrating oauth2 into a Silex, symfony, or Laravel 4 app, (or any app using HttpFoundation), this will make your application much cleaner

Creating the Server

Creating the server is no different from before, except that you use the OAuth2\HttpFoundationBridge\Server class instead of OAuth2_Server:

$server = new OAuth2\HttpFoundationBridge\Server($app['oauth_storage']);
$server->addGrantType(new OAuth2_GrantType_AuthorizationCode($app['oauth_storage']));
...

Now, when you call any of the handle*Request methods, or call getResponse, the object returned will be an instance of Symfony\Component\HttpFoundation\Response:

if (!$token = $server->grantAccessToken($request)) {
    $response = $server->getResponse();
    if ($response->isSuccessful()) {
        // isSuccessful is unique to HttpFoundation
    }
}

Creating the request

Creating the response object is the same as before, except now you use the OAuth2\HttpFoundationBridge\Request class:

$request = OAuth2\HttpFoundationBridge\Request::createFromGlobals();
$app->run($request);

The Request object is now compatible with both HttpFoundation and oauth2-server-php

// getBaseUrl is unique to HttpFoundation
$baseUrl = $request->getBaseUrl();

// call oauth server
$server->grantAccessToken($request);

If the HttpFoundation request already exists, you can use the static createFromRequest function to build the OAuth2\HttpFoundationBridge\Request instance:

use OAuth2\HttpFoundationBridge\Request as BridgeRequest;

// in your controller layer, the $request object is passed in
public function execute(Request $request)
{
    $bridgeRequest = BridgeRequest::createFromRequest($request);
    $server->grantAccessToken($request);
}

Contact

Please contact Brent Shaffer (bshafs gmail com) for more information

About

Integrate HttpFoundation into your oauth2-server library

Resources

Stars

Watchers

Forks

Packages

No packages published