PHP JWT到期问题

PHP JWT到期问题,php,jwt,jwt-auth,php-jwt,Php,Jwt,Jwt Auth,Php Jwt,我是JWT的新手,因此提前道歉 我正在使用图书馆 标题 include_once("includes/jwt/BeforeValidException.php"); include_once("includes/jwt/ExpiredException.php"); include_once("includes/jwt/JWK.php"); include_once("includes/jwt/JWT.php");

我是JWT的新手,因此提前道歉

我正在使用图书馆

标题

include_once("includes/jwt/BeforeValidException.php");
include_once("includes/jwt/ExpiredException.php");
include_once("includes/jwt/JWK.php");
include_once("includes/jwt/JWT.php");
include_once("includes/jwt/SignatureInvalidException.php");


header("Access-Control-Allow-Origin: *");
header("Access-Control-Request-Headers: GET,POST,OPTIONS,DELETE,PUT");
header('Access-Control-Allow-Headers: Authorization, Accept,Accept-Language,Content-Language,Content-Type');
我正在使用以下命令生成令牌:

$secret_key = "***";
$issuer_claim = "***";
$audience_claim = "***";
$issuedat_claim = time(); // issued at
$notbefore_claim = $issuedat_claim; //not useable before in seconds
$expire_claim = time() + (60*60); // expire time in seconds
$token = array(
    "iss" => $issuer_claim,
    "aud" => $audience_claim,
    "iat" => $issuedat_claim,
    "nbf" => $notbefore_claim,
    "exp" => $expire_claim,
);
$jwt = JWT::encode($token, $secret_key);
然而,当我使用工具on解码生成的令牌时,它显示令牌将在5分钟后过期

{
  "iss": "***",
  "aud": "***",
  "iat": 1600925201,
  "nbf": 1600925201,
  "exp": 1600925501
}
你能告诉我如何延长有效期吗?尽管在有效负载中我指定了60分钟,但令牌的有效期仅为5分钟

第二,我想知道如何让处于活动状态的用户的令牌保持活动状态。例如,对于60分钟不活动的用户,令牌应过期。但是使用该网站/web应用程序的用户不应该注销,因为他可能正在进行某些事情,突然注销会中断流量。我已经阅读了有关刷新令牌的相关内容,如果您认为这是一种可以采用的方法,我将非常感谢您能分享一些关于该方法的教程,因为我还没有找到任何能够很好地理解如何执行的教程


提前谢谢。

我试过你的代码片段,在iat后3600秒得到了
iat=>1600930608 nbf=>1600930608 exp=>1600934208
->exp。无论您有什么问题,都无法在问题中显示的代码中找到。@jps我已更新了问题。请注意,在您的沙箱中,您没有解码jwt令牌并查看其值。您只是重复了$expire\u声明。当然,我只重复了声明,因为这是您以前提供的所有信息。您能检查一下您的服务器时间是否与“真实”当前时间相同吗?@AITMANSOURMohamed yes刚刚检查并确认服务器时间与“真实”当前时间相同。