CHANGE_JWT_TOKEN_IDEAL_TIME_SET : AADHAVAN

This commit is contained in:
aadhavan valli 2024-06-04 13:47:12 +05:30
parent 17bc0b9911
commit f05c292b7c
3 changed files with 29 additions and 26 deletions

View File

@ -12,6 +12,7 @@ use ReflectionClass;
require_once('../vendor/autoload.php'); require_once('../vendor/autoload.php');
use App\Models\EmployeeModel;
class AuthJWT implements FilterInterface class AuthJWT implements FilterInterface
@ -19,27 +20,27 @@ class AuthJWT implements FilterInterface
public function before(RequestInterface $request, $arguments = null) public function before(RequestInterface $request, $arguments = null)
{ {
$jwt = $request->getHeader('Authorization'); $jwt = $request->getHeader('Authorization');
$model = new EmployeeModel();
if ($jwt) { if ($jwt) {
if (JWTToken::validateJWT($jwt)) { if (JWTToken::validateJWT($jwt)) {
$data = JWTToken::validateJWT($jwt); $data = JWTToken::validateJWT($jwt);
$data = json_decode($data); $data = json_decode($data);
if ($data->status) { $id = $data->decoded->id;
// $auth = $request->getHeader("Authorization"); $user_data = $model->where('id', $id)->first();
// $decodedToken = $data->decoded;
// $decodedToken->exp += 30; if($user_data['token_time_out'] > time()){
// $newJwt = JWTToken::encode((array)$decodedToken); $data =["token_time_out" => time() + getenv('TOKENTIMEOUT') ];
$model->update($id, $data);
// Set the new JWT in the response headers
// $response = service('response');
// $response->setHeader('Authorization', $newJwt);
return true; return true;
}else{ }else{
$data =["token_time_out" => ''];
$model->update($id, $data);
header('Content-Type: application/json'); header('Content-Type: application/json');
http_response_code(401); http_response_code(401);
$error = json_encode(["status" => 401, "message" => $data->message]); // $error = json_encode(["status" => 401, "message" => $data->message]);
$error = json_encode(["status" => 401, "message" => "Token is Invalid"]);
echo $error; echo $error;
exit; exit;
} }

View File

@ -12,6 +12,7 @@ use Firebase\JWT\SignatureInvalidException;
use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RequestInterface;
use ReflectionClass; use ReflectionClass;
use App\Models\EmployeeModel;
class JWTToken class JWTToken
@ -19,20 +20,20 @@ class JWTToken
public static function encode($data =null) public static function encode($data =null)
{ {
$secret_Key ="secret"; $secret_Key ="secret";
$iat = time();
$exp = $iat + 180; $request_data = (array)$data;
$request_data = [
"iat" => $iat,
"exp" => $exp,
];
if ($data !== null) {
$request_data = array_merge($request_data, (array)$data);
}
try{ try{
$token = JWT::encode($request_data ,$secret_Key,'HS512'); $token = JWT::encode($request_data ,$secret_Key,'HS512');
$model = new EmployeeModel();
$id = $request_data['id'];
$data =[
"token_time_out" => time() + getenv('TOKENTIMEOUT')
];
$model->update($id, $data);
return $token; return $token;
// return ['status' => true,'token' => $token];
} }
catch (Exception $e) { catch (Exception $e) {
return ['status' => false,'message' => $e->getMessage()]; return ['status' => false,'message' => $e->getMessage()];

View File

@ -38,7 +38,8 @@ class EmployeeModel extends Model
"file_id", "file_id",
"is_addon_value", "is_addon_value",
"is_createdby_hr", "is_createdby_hr",
"client_branch_id" "client_branch_id",
"token_time_out"
]; ];
// Callbacks // Callbacks