You've already forked php-auth
generated from siteworxpro/Php-Template
Basics of auth
Some checks failed
🧪✨ Tests Workflow / 🛡️ 🔒 Library Audit (push) Successful in 2m31s
🧪✨ Tests Workflow / 📝 ✨ Code Lint (push) Successful in 2m24s
🧪✨ Tests Workflow / 🛡️ 🔒 License Check (push) Successful in 2m57s
🧪✨ Tests Workflow / 🧪 ✨ Database Migrations (push) Successful in 3m14s
🧪✨ Tests Workflow / 🐙 🔍 Code Sniffer (push) Failing after 2m58s
🧪✨ Tests Workflow / 🧪 ✅ Unit Tests (push) Failing after 1m24s
Some checks failed
🧪✨ Tests Workflow / 🛡️ 🔒 Library Audit (push) Successful in 2m31s
🧪✨ Tests Workflow / 📝 ✨ Code Lint (push) Successful in 2m24s
🧪✨ Tests Workflow / 🛡️ 🔒 License Check (push) Successful in 2m57s
🧪✨ Tests Workflow / 🧪 ✨ Database Migrations (push) Successful in 3m14s
🧪✨ Tests Workflow / 🐙 🔍 Code Sniffer (push) Failing after 2m58s
🧪✨ Tests Workflow / 🧪 ✅ Unit Tests (push) Failing after 1m24s
This commit is contained in:
66
src/Controllers/AccessTokenController.php
Normal file
66
src/Controllers/AccessTokenController.php
Normal file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Siteworxpro\App\Controllers;
|
||||
|
||||
use Defuse\Crypto\Exception\BadFormatException;
|
||||
use Defuse\Crypto\Exception\EnvironmentIsBrokenException;
|
||||
use League\OAuth2\Server\Exception\OAuthServerException;
|
||||
use Nyholm\Psr7\ServerRequest;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Siteworxpro\App\Http\JsonResponseFactory;
|
||||
use Siteworxpro\App\Http\Responses\GenericResponse;
|
||||
use Siteworxpro\App\OAuth\Entities\AuthorizationCode;
|
||||
use Siteworxpro\App\OAuth\Entities\Client;
|
||||
use Siteworxpro\HttpStatus\CodesEnum;
|
||||
|
||||
final class AccessTokenController extends Controller
|
||||
{
|
||||
/**
|
||||
* @param ServerRequest $request
|
||||
* @return ResponseInterface
|
||||
* @throws BadFormatException
|
||||
* @throws EnvironmentIsBrokenException
|
||||
* @throws \JsonException
|
||||
* @throws OAuthServerException
|
||||
*/
|
||||
public function post(ServerRequest $request): ResponseInterface
|
||||
{
|
||||
try {
|
||||
$grantType = $request->getParsedBody()['grant_type'] ?? null;
|
||||
$client = Client::find($request->getAttribute('client_id'));
|
||||
if ($client === null) {
|
||||
return JsonResponseFactory::createJsonResponse(
|
||||
new GenericResponse('Invalid client'),
|
||||
CodesEnum::BAD_REQUEST,
|
||||
);
|
||||
}
|
||||
|
||||
switch ($grantType) {
|
||||
case 'authorization_code':
|
||||
return $client
|
||||
->getAuthorizationServer()
|
||||
->respondToAccessTokenRequest($request, JsonResponseFactory::createJsonResponse([]));
|
||||
|
||||
case 'refresh_token':
|
||||
break;
|
||||
default:
|
||||
return JsonResponseFactory::createJsonResponse(
|
||||
new GenericResponse('Unsupported grant type'),
|
||||
CodesEnum::BAD,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$response = $this->authorizationServer->respondToAccessTokenRequest(
|
||||
$request,
|
||||
new Response(),
|
||||
);
|
||||
|
||||
return $response;
|
||||
} catch (OAuthServerException $e) {
|
||||
return $e->generateHttpResponse(new Response());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user