ValidatetokenController.class.php 1.19 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
<?php

include_once __ROOT_DIR . '/libs/php-jwt/src/BeforeValidException.php';
include_once __ROOT_DIR . '/libs/php-jwt/src/ExpiredException.php';
include_once __ROOT_DIR . '/libs/php-jwt/src/SignatureInvalidException.php';
include_once __ROOT_DIR . '/libs/php-jwt/src/JWT.php';
use \Firebase\JWT\JWT;

class ValidatetokenController extends Controller {

   public function __construct($name, $request) {
      parent::__construct($name, $request);
   }

thibaut-felten's avatar
thibaut-felten committed
15
   // Check if the user is connected or not
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
    public function processRequest() {
      try {
         $jwt_token = $this->request->getJwtToken();

         $decodedJWT = JWT::decode($jwt_token, JWT_BACKEND_KEY, array('HS256'));
         $jsonResult = json_encode(array(
             "message" => "Access granted.",
             "data" => $decodedJWT
         ));

      } catch (Exception $e){
         header('WWW-Authenticate: Bearer realm="'.JWT_ISSUER.'"');

         $jsonResult =  json_encode(array(
             "message" => "Access denied.",
             "error" => $e->getMessage()
         ));
         return Response::unauthorizedResponse($jsonResult);
      }
      $response = Response::okResponse($jsonResult);
      return $response;
    }
}