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:
@@ -4,12 +4,14 @@ declare(strict_types=1);
|
||||
|
||||
namespace Siteworxpro\App\Controllers;
|
||||
|
||||
use Defuse\Crypto\Exception\BadFormatException;
|
||||
use Defuse\Crypto\Exception\EnvironmentIsBrokenException;
|
||||
use HansOtt\PSR7Cookies\SetCookie;
|
||||
use League\OAuth2\Server\Exception\OAuthServerException;
|
||||
use League\OAuth2\Server\RequestTypes\AuthorizationRequest;
|
||||
use Nyholm\Psr7\Response;
|
||||
use Nyholm\Psr7\ServerRequest;
|
||||
use Nyholm\Psr7\Stream;
|
||||
use Psr\SimpleCache\InvalidArgumentException;
|
||||
use Siteworxpro\App\Helpers\Rand;
|
||||
use Siteworxpro\App\Http\JsonResponseFactory;
|
||||
use Siteworxpro\App\Http\Responses\ServerErrorResponse;
|
||||
@@ -21,75 +23,64 @@ use Siteworxpro\HttpStatus\CodesEnum;
|
||||
final class AuthorizeController extends Controller
|
||||
{
|
||||
/**
|
||||
* @throws InvalidArgumentException
|
||||
* @param ServerRequest $request
|
||||
* @return Response
|
||||
* @throws BadFormatException
|
||||
* @throws EnvironmentIsBrokenException
|
||||
* @throws \JsonException
|
||||
*/
|
||||
// #[\Override] public function post(ServerRequest $request): Response
|
||||
// {
|
||||
// $s = $request->getCookieParams()['s'] ?? '';
|
||||
//
|
||||
// $password = $request->getParsedBody()['password'] ?? '';
|
||||
// $email = $request->getParsedBody()['email'] ?? '';
|
||||
//
|
||||
// if (!$this->redis->get('session:' . $s)) {
|
||||
// $this->log->error('Session Timed out', ['session' => $s]);
|
||||
//
|
||||
// return $this->sendJsonResponse(
|
||||
// [
|
||||
// 'error' => "your login session has timed out. please try again."
|
||||
// ],
|
||||
// 400
|
||||
// );
|
||||
// }
|
||||
//
|
||||
// /** @var AuthorizationRequest $authRequest */
|
||||
// $authRequest = unserialize($this->redis->get('session:' . $s));
|
||||
//
|
||||
// if ($authRequest->isAuthorizationApproved()) {
|
||||
// $response = $this
|
||||
// ->authorizationServer
|
||||
// ->completeAuthorizationRequest($authRequest, $this->sendJsonResponse());
|
||||
//
|
||||
// return $this->sendJsonResponse(
|
||||
// [
|
||||
// 'success' => true,
|
||||
// 'location' => $response->getHeader('Location')[0]
|
||||
// ]
|
||||
// );
|
||||
// }
|
||||
//
|
||||
// /** @var Client $client */
|
||||
// $client = $authRequest->getClient();
|
||||
//
|
||||
// /** @var LoginInterface $entitiesModel */
|
||||
// $entitiesModel = $client->entities_model;
|
||||
//
|
||||
// /** @var User | null $entity */
|
||||
// $entity = $entitiesModel::performLogin($email, $password);
|
||||
// if (!$entity) {
|
||||
// return $this->sendJsonResponse(
|
||||
// [
|
||||
// 'success' => false,
|
||||
// 'reason' => 'login failed'
|
||||
// ],
|
||||
// 401
|
||||
// );
|
||||
// }
|
||||
//
|
||||
// $authRequest->setUser($entity);
|
||||
// $authRequest->setAuthorizationApproved(true);
|
||||
// $response = $this
|
||||
// ->authorizationServer
|
||||
// ->completeAuthorizationRequest($authRequest, $this->sendJsonResponse());
|
||||
//
|
||||
// $this->redis->delete('session:' . $s);
|
||||
//
|
||||
// return $this->sendJsonResponse(
|
||||
// [
|
||||
// 'success' => true,
|
||||
// 'location' => $response->getHeader('Location')[0]
|
||||
// ]
|
||||
// );
|
||||
// }
|
||||
public function post(ServerRequest $request): Response
|
||||
{
|
||||
$s = $request->getCookieParams()['s'] ?? '';
|
||||
|
||||
$password = $request->getParsedBody()['password'] ?? '';
|
||||
$email = $request->getParsedBody()['email'] ?? '';
|
||||
|
||||
if (!Redis::get('session:' . $s)) {
|
||||
Logger::warning('Session Timed out', ['session' => $s]);
|
||||
|
||||
return JsonResponseFactory::createJsonResponse([]);
|
||||
}
|
||||
|
||||
/** @var AuthorizationRequest $authRequest */
|
||||
$authRequest = unserialize(Redis::get('session:' . $s));
|
||||
|
||||
/** @var Client $client */
|
||||
$client = $authRequest->getClient();
|
||||
|
||||
$authorizationServer = $client->getAuthorizationServer();
|
||||
|
||||
if ($authRequest->isAuthorizationApproved()) {
|
||||
$response = $authorizationServer
|
||||
->completeAuthorizationRequest($authRequest, JsonResponseFactory::createJsonResponse([]));
|
||||
|
||||
return JsonResponseFactory::createJsonResponse([
|
||||
'success' => true,
|
||||
'location' => $response->getHeader('Location')[0]
|
||||
]);
|
||||
}
|
||||
|
||||
$user = $client->loginUser($email, $password);
|
||||
|
||||
if (!$user) {
|
||||
return JsonResponseFactory::createJsonResponse([
|
||||
'success' => false,
|
||||
'reason' => 'login failed'
|
||||
], CodesEnum::UNAUTHORIZED);
|
||||
}
|
||||
|
||||
$authRequest->setUser($user);
|
||||
$authRequest->setAuthorizationApproved(true);
|
||||
$response = $authorizationServer
|
||||
->completeAuthorizationRequest($authRequest, JsonResponseFactory::createJsonResponse([]));
|
||||
|
||||
Redis::del('session:' . $s);
|
||||
|
||||
return JsonResponseFactory::createJsonResponse([
|
||||
'success' => true,
|
||||
'location' => $response->getHeader('Location')[0]
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \Exception
|
||||
|
||||
Reference in New Issue
Block a user