Files
exchange-2.0/app/Http/Middleware/ValidateToken.php
T
glovetleong 1dfe8d613c pull
2021-09-07 15:45:19 +08:00

51 lines
1.1 KiB
PHP

<?php
namespace App\Http\Middleware;
use App\Classes\Exceptions\AccessUnauthorisedException;
use App\Classes\ValueObjects\Constants\HttpStatus;
use App\Classes\ValueObjects\Response\ApiResponseObject;
use Closure;
use Exception;
use Tymon\JWTAuth\JWT;
class ValidateToken
{
/** @var JWT */
private $manager;
/**
* ValidateToken constructor.
* @param JWT $manager
*/
public function __construct(JWT $manager)
{
$this->manager = $manager;
}
/**
* Checks if jwt token is valid.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return response()->json(['status' =>2, 'msg' => $this->manager->getPayload()]);
try {
if(!$this->manager->check()){ throw new AccessUnauthorisedException(); }
} catch (Exception $exception) {
return (new ApiResponseObject('Authentication', 'To keep your account secure we need to re-validate your account', HttpStatus::ACCESS_UNAUTHORISED))->handler();
}
return $next($request);
}
}