Viewing File: /home/assersoft/public_html/doctor-assistant/app/Filters/AuthFilter.php
<?php
namespace App\Filters;
require_once __DIR__ . "/../Helpers/jwt_helper.php";
use CodeIgniter\Filters\FilterInterface;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Config\Services;
helper('cookie');
class AuthFilter implements FilterInterface {
public function before(RequestInterface $request, $arguments = null) {
if($request instanceof \CodeIgniter\HTTP\IncomingRequest){
$currentRoute = $request->getUri()->getPath();
$currentMethod = $request->getMethod();
$jsonData = $request->getVar();
if (
is_object($jsonData) &&
property_exists($jsonData, 'user_type') &&
$jsonData->user_type === 'head_doctor' &&
$currentRoute === 'user' && $currentMethod === 'post'
) {
return null;
}
}
$accessToken = get_cookie('access_token');
if(!$accessToken) {
return Services::response()->setStatusCode(ResponseInterface::HTTP_UNAUTHORIZED)->setJSON(['error' => 'No access token provided']);
}
$decodedToken = decodeJWT($accessToken);
if(is_object($decodedToken) &&
property_exists($decodedToken, 'error')) {
return Services::response()->setStatusCode(ResponseInterface::HTTP_UNAUTHORIZED)->setJSON($decodedToken);
}
$request->user = $decodedToken;
return null;
}
public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) {}
}
Back to Directory
File Manager