gpt4 book ai didi

java - JWT token 到期时间在生成的 token 中被修剪

转载 作者:行者123 更新时间:2023-12-01 18:20:17 28 4
gpt4 key购买 nike

我正在我的一个应用程序中生成 JWT token 以与某些第三方 API 进行通信,我可以正确创建 token ,直到我开始面临一个奇怪的问题,下面是我如何设置 token 的到期日期:

JWTClaimsSet jwtClaims = new JWTClaimsSet();
jwtClaims.setExpirationTime(new Date(new Date().getTime() + 1000*60*120));
jwtClaims.setCustomClaim("myobj", prepare(myobj));
JWSHeader header = new JWSHeader(JWSAlgorithm.RS256);
header.setContentType("text/plain");

就在这下面我做了一个

System.out.println("after :::"+jwtClaims.getExpirationTime().getTime());

将值打印为:1420636467027然而,当我解码我的 token 时,我得到的值为:1420636467,所以基本上最后 3 位数字被修剪,而且第三方 API 由于 token 过期而使我的调用失败,这是正确的。为了避免这种情况,我还需要做些什么吗?非常感谢在这方面的任何帮助。

最佳答案

JWT token 中的所有时间(例如在时间(iat)发出,而不是在时间(nbf)之前和过期时间(exp))自 1970 年 1 月 1 日以来都应该以秒为单位进行测量。由于您指定的时间以毫秒为单位,因此当服务器破解您的 JWT token 时,这可能会导致服务器端出现问题。只需开始使用以秒为单位的时间。希望这能解决您的问题。

关于java - JWT token 到期时间在生成的 token 中被修剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27818404/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com