mirror of
https://github.com/flextype/flextype.git
synced 2025-08-06 13:16:45 +02:00
feat(endpoints): add create-token
endpoint
This commit is contained in:
@@ -113,4 +113,45 @@ class Utils extends Api
|
||||
// Return success response
|
||||
return $this->getApiResponse($response, ['verified' => $verified], 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create token
|
||||
*
|
||||
* @param ServerRequestInterface $request PSR7 request.
|
||||
* @param ResponseInterface $response PSR7 response.
|
||||
*
|
||||
* @return ResponseInterface Response.
|
||||
*/
|
||||
public function createToken(ServerRequestInterface $request, ResponseInterface $response): ResponseInterface
|
||||
{
|
||||
// Validate Api Request
|
||||
if (
|
||||
count($result = $this->validateApiRequest([
|
||||
'request' => $request,
|
||||
'api' => 'utils',
|
||||
'params' => ['token', 'access_token'],
|
||||
])) > 0
|
||||
) {
|
||||
return $this->getApiResponse($response, $this->getStatusCodeMessage($result['http_status_code']), $result['http_status_code']);
|
||||
}
|
||||
|
||||
$token = generateToken();
|
||||
$access_token = generateToken();
|
||||
$hashed_access_token = generateTokenHash($access_token);
|
||||
|
||||
! entries()->has('tokens') and entries()->create('tokens', ['title' => 'Tokens']);
|
||||
|
||||
// Create new entry
|
||||
entries()->create('tokens/' . $token, ['hashed_access_token' => $hashed_access_token]);
|
||||
|
||||
// Fetch entry
|
||||
$entryData = entries()->fetch('tokens/' . $token)->toArray();
|
||||
|
||||
// Return response
|
||||
if (count($entryData) > 0) {
|
||||
return $this->getApiResponse($response, ['token' => $token, 'access_token' => $access_token], 200);
|
||||
}
|
||||
|
||||
return $this->getApiResponse($response, [], 404);
|
||||
}
|
||||
}
|
||||
|
@@ -64,3 +64,17 @@ app()->post('/api/v0/utils/generate-token-hash', [Utils::class, 'generateTokenHa
|
||||
* Token verification object.
|
||||
*/
|
||||
app()->post('/api/v0/utils/verify-token-hash', [Utils::class, 'verifyTokenHash'])->setName('utils.verify-token-hash');
|
||||
|
||||
/**
|
||||
* Create token
|
||||
*
|
||||
* endpoint: POST /api/v0/utils/create-token
|
||||
*
|
||||
* Body:
|
||||
* token - [REQUIRED] - Valid public token.
|
||||
* access_token - [REQUIRED] - Valid private access token.
|
||||
*
|
||||
* Returns:
|
||||
* Token entry object with the token entry that was just created.
|
||||
*/
|
||||
app()->post('/api/v0/utils/create-token', [Utils::class, 'createToken'])->setName('utils.create-token');
|
||||
|
Reference in New Issue
Block a user