nhance/app/Filters/AuthJWT.php
2024-04-01 11:13:01 +05:30

56 lines
1.5 KiB
PHP

<?php
namespace App\Filters;
use App\Helpers\JWTToken;
use CodeIgniter\Filters\FilterInterface;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
use ReflectionClass;
require_once('../vendor/autoload.php');
class AuthJWT implements FilterInterface
{
public function before(RequestInterface $request, $arguments = null)
{
$jwt = $request->getHeader('Authorization');
if ($jwt) {
if (JWTToken::validateJWT($jwt)) {
$data = JWTToken::validateJWT($jwt);
$data = json_decode($data);
if ($data->status) {
// $auth = $request->getHeader("Authorization");
return true;
}else{
header('Content-Type: application/json');
http_response_code(401);
$error = json_encode(["status" => 401, "message" => $data->message]);
echo $error;
exit;
}
}
} else {
header('Content-Type: application/json');
http_response_code(403);
$error = json_encode(["status" => 403, "message" => "Access Forbidden!"]);
echo $error;
exit();
}
}
public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
{
// Do something here after the response is sent
}
}