所以,我有使用 CI4 的 JWT 身份验证 API,其中一种方法是过滤,它告诉你是否有 JWT 的令牌,如果用户没有令牌,它将返回一个异常,告诉 JWT 身份验证像这样失败了:
是否有可能像这样让它更简单?,只是一个响应,没有像第一张图片中那样的跟踪异常
这里是 jwt_helper.php :
<?php
use App\Models\AuthModel;
use Firebase\JWT\JWT;
function getJWT($headerAuth)
{
if (is_null($headerAuth)) {
throw new Exception("JWT Authentication failed");
}
return explode(" ", $headerAuth)[1];
}
function validateJWT($encodedToken)
{
$key = getenv('JWT_SECRET_KEY');
$decodedToken = JWT::decode($encodedToken, $key, ['HS256']);
$authModel = new AuthModel();
// * xxxx.xxxx.xxxx
$authModel->getEmail($decodedToken->email);
}
function createJWT($email)
{
$requestTime = time();
$tokenTime = getenv('JWT_TOKEN_TIME');
$tokenExpireTime = $requestTime + $tokenTime;
$payload = [
'email' => $email,
'iat' => $requestTime,
'exp' => $tokenExpireTime
];
$jwt = JWT::encode($payload, getenv('JWT_SECRET_KEY'), 'HS256');
return $jwt;
}