Try Token
This commit is contained in:
34
app/src/Controller/API/Tokens.php
Normal file
34
app/src/Controller/API/Tokens.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
namespace Incoviba\Controller\API;
|
||||
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Incoviba\Common\Ideal\Controller;
|
||||
use Incoviba\Common\Implement\Exception\EmptyResult;
|
||||
use Incoviba\Exception\MissingAuthorizationHeader;
|
||||
use Incoviba\Service;
|
||||
|
||||
class Tokens extends Controller
|
||||
{
|
||||
use withJson;
|
||||
|
||||
public function try(ServerRequestInterface $request, ResponseInterface $response,
|
||||
Service\API $apiService,
|
||||
Service\Login $loginService): ResponseInterface
|
||||
{
|
||||
$output = [
|
||||
'token' => '',
|
||||
'valid' => false
|
||||
];
|
||||
try {
|
||||
$token = $apiService->getKey($request);
|
||||
$output['token'] = $token;
|
||||
if (!str_contains($token, $loginService->getSeparator())) {
|
||||
throw new EmptyResult('Token not complex');
|
||||
}
|
||||
list($key, $selector, $token) = explode($loginService->getSeparator(), $token, 3);
|
||||
$output['valid'] = $loginService->isIn($selector, $token);
|
||||
} catch (MissingAuthorizationHeader | EmptyResult) {}
|
||||
return $this->withJson($response, $output);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user