php - PHP 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);
但是,当我使用jwt.io上的工具解码生成的令牌时,它显示该令牌将在 5 分钟内过期。
{
"iss": "***",
"aud": "***",
"iat": 1600925201,
"nbf": 1600925201,
"exp": 1600925501
}
你能指导我如何增加到期时间吗?即使在有效负载中我指定了 60 分钟,但令牌仅在 5 分钟内有效。
其次,我想知道如何为活跃的用户保持令牌活着。例如,一个保持不活动状态 60 分钟的用户,令牌应该过期。但是,不应注销正在使用网站/网络应用程序的用户,因为他可能正处于某些事情的中间,而突然注销会破坏流程。我已经阅读了这方面的刷新令牌,如果您认为这是可以采用的方法,如果您能分享一些关于这方面的教程,我将不胜感激,因为我还没有找到任何可以很好地理解如何执行的教程.
提前致谢。
解决方案
推荐阅读
- java - PetitParser:有没有像 plus() 这样但有上限的解析器?
- python-3.x - asyncio.run 内部同步函数返回 None
- node.js - 无法读取未定义的属性/req.body 返回未定义
- scala - 我如何断言一个类是否使用 ArchUnit 扩展了“AnyVal”
- javascript - 更改后如何在 flexbox 网格中获取更新的 Vue 元素的 CSS 宽度?
- typo3 - 如何在typo3 V10的extbase控制器中重定向到404页面
- android - 从 MaterialContainerTransform 过渡中排除 ActionBar
- php - 简单的 HTML DOM 解析器错误:“警告:file_get_contents()”
- apache-spark - 我们如何更改火花输出的文件名 [sparkJava]
- javascript - 使用 JavaScript 解码 base64 视频 blob