update($id, $data); }else{ $models = new LevelContactModel(); $models->update($id, $data); } return $token; } catch (Exception $e) { return ['status' => false,'message' => $e->getMessage()]; } } public static function validateJWT($jwt) { $jwtParts = explode(' ', $jwt); // print_r($jwtParts); if (count($jwtParts) != 2 || $jwtParts[0] == 'Bearer') { return false; } $token = $jwtParts[1]; try { $decoded = JWT::decode($token, new Key("secret", 'HS512')); return json_encode(['status' => true, 'message' => 'Token is valid', 'decoded' => (array) $decoded]); } catch (ExpiredException $e) { return json_encode(['status' => false, 'message' => 'Token has expired']); } catch (BeforeValidException $e) { return json_encode(['status' => false, 'message' => 'Token is not yet valid']); } catch (SignatureInvalidException $e) { return json_encode(['status' => false, 'message' => 'Token signature is invalid']); } catch (\Exception $e) { return json_encode(['status' => false, 'message' => 'An error occurred while decoding the token']); } } public static function getIdFromToken($jwt) { $jwtParts = explode(' ', $jwt); $token = $jwtParts[0]; try { $decoded = JWT::decode($token, new Key("secret", 'HS512')); return json_encode(['status' => true, 'message' => 'Token is valid', 'data' =>$decoded->data->id ]); } catch (ExpiredException $e) { return json_encode(['status' => false, 'message' => 'Token has expired']); } catch (BeforeValidException $e) { return json_encode(['status' => false, 'message' => 'Token is not yet valid']); } catch (SignatureInvalidException $e) { return json_encode(['status' => false, 'message' => 'Token signature is invalid']); } catch (\Exception $e) { return json_encode(['status' => false, 'message' => 'An error occurred while decoding the token']); } } public static function getUserIdFromToken() { $request = \Config\Services::request(); $jwt = $request->getHeader('Authorization'); $jwtParts = explode(' ', $jwt); $token = $jwtParts[1]; $decoded = JWT::decode($token, new Key("secret", 'HS512')); return $decoded->id; } public static function getUserRoleFromToken() { $request = \Config\Services::request(); $jwt = $request->getHeader('Authorization'); $jwtParts = explode(' ', $jwt); $token = $jwtParts[1]; $decoded = JWT::decode($token, new Key("secret", 'HS512')); return $decoded->role; } public static function decodeToken() { $request = \Config\Services::request(); $jwt = $request->getHeader('Authorization'); $jwtParts = explode(' ', $jwt); $token = $jwtParts[1]; $decoded = JWT::decode($token, new Key("secret", 'HS512')); return $decoded; } }