softcomtecnologia/oauth2-server-httpfoundation-bridge

oauth2-server-php 对 HttpFoundation 的桥梁

v1.4.5 2020-09-18 18:44 UTC

README

oauth2-server-php 对 HttpFoundation 的桥梁,用于HttpFoundationoauth2-server-php

Build Status

oauth2-server-httpfoundation-bridge是oauth2-server-php的包装器,它返回Symfony\Component\HttpFoundation\Response而不是OAuth2\Response,并使用Symfony\Component\HttpFoundation\Request代替OAuth2\Request

如果您正在将OAuth2集成到Silex、Symfony或Laravel 4应用程序(或使用HttpFoundation的任何应用程序),这将使您的应用程序更加整洁

安装

Composer是安装此库的最佳方式。将以下行添加到composer.json中

{
    "require": {
        "softcomtecnologia/oauth2-server-php": "v1.11.*",
        ...
    },
    ...
}

然后运行composer.phar install

尽可能与oauth2-server-php库匹配标签。v1.1是最新标签。

创建请求

创建请求对象与之前相同,但现在您使用的是OAuth2\HttpFoundationBridge\Request

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

请求对象现在与HttpFoundation和oauth2-server-php都兼容

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

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

如果HttpFoundation请求已经存在,您可以使用静态函数createFromRequest来构建OAuth2\HttpFoundationBridge\Request实例

use OAuth2\HttpFoundationBridge\Request as BridgeRequest;

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

创建响应

OAuth2\HttpFoundationBridge\Response对象扩展了Symfony\Component\HttpFoundation\JsonResponse,并实现了OAuth2\ResponseInterface,允许您将其传递并从控制器中返回。在Symfony和Silex中,这将集成服务器所需的所有内容

use OAuth2\HttpFoundationBridge\Response as BridgeResponse;

// in your controller layer, the $request object is passed in
public function execute(Request $request)
{
    //... (instantiate server/response objects)
    $response = new BridgeResponse();
    return $server->handleTokenRequest($request, $response);
}

注意:此对象将返回JSON。使用OAuth2\ResponseInterface实现自己的类以支持不同的内容类型。

示例

联系

有关更多信息,请联系Brent Shaffer(bshafs gmail com)