JWT(JSON Web Token) (Eighth Token) Creation with CURL and Expire Time in CodeIgniter 3
<?php
defined("BASEPATH") or exit("No direct script access allowed");
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
class RequestEight extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index()
{
$key = "Eighth_Key";
$data = [
"username" => "user@3944",
"password" => "3228"
];
//Set the expiration time to 1 hour from the current time
$issuedAt = time();
$expirationTime = $issuedAt + 3600; //jwt valid for 1 hour from the issued time
$payload = [
"id" => 27,
"name" => "Patel Pramod Ramjibhai",
"age" => 33,
"gender" => "Male",
"email" => "patelpramod7433@gmail.com",
"username" => "pramod2333",
"password" => "pramod@493",
"address" => "Shyamal Cross Road, Panchavati, Ahmedabad",
"nationality" => "Indian",
"favourite game" => "Hockey",
"son name" => "Abhishek",
"school name" => "Devashya International School",
"school address" => "Nikol, Ahmedabad",
"standard" => "12th",
"Teacher name" => "Anjali Patel",
"city" => "Ahmedabad",
"pincode" => 362311,
"iat" => $issuedAt, //Issued at: time when the token was generated
"nbf" => $issuedAt, //Not before
"exp" => $expirationTime //Expiration Time
];
$jwt = JWT::encode($payload, $key, "HS256");
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'http://localhost/blogApi/ApiEight/users',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => [
'Accept: application/json',
'Authorization: Bearer ' . $jwt,
],
]);
$response = curl_exec($curl);
curl_close($curl);
print_r($response);
}
}
DECODE Data File
<?php
defined("BASEPATH") or exit("No direct script access allowed");
use chriskacerguis\RestServer\RestController;
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
class ApiEight extends RestController
{
public function __construct()
{
parent::__construct();
}
public function users_post()
{
$headers = apache_request_headers();
$jwt = $headers["Authorization"];
$jwt = str_replace("Bearer", "", $jwt);
$jwt = trim($jwt);
print_r($jwt);
echo "<br><br><br>";
try {
$decoded = JWT::decode($jwt, new Key("Eighth_Key", "HS256"));
echo json_encode(array(
"status" => "success",
"data" => $decoded
));
echo "<br><br><br>";
echo "<pre>";
$this->response($decoded);
} catch (\Firebase\JWT\ExpiredException $e) {
echo json_encode(array(
"status" => "error",
"message" => "Token is Expired"
));
} catch (Exception $e) {
echo json_encode(array(
"status" => "error",
"message" => $e->getMessage()
));
print_r($e->getMessage());
exit();
}
}
}
Comments
Post a Comment