首页 > 解决方案 > 如何操纵 JWT 令牌的内部时间以使其看起来像是 15 分钟过去了?

问题描述

我已经为我的 node js 应用程序实现了一项功能,用户可以从用户仪表板更改他们的电子邮件地址。对于更改电子邮件地址,当用户提交新电子邮件地址时,它会向其旧电子邮件地址发送一封验证电子邮件,其中包含验证链接。验证链接包含一个有效期为 15 分钟的 JWT 令牌。如果用户在 15 分钟内点击验证链接,则会更改为新的电子邮件地址,否则会失败。

目前我正在为此功能编写集成测试。现在的问题是从我的集成测试中测试 JWT 令牌。在集成测试中,我的测试代码应该检查由于用户花费超过 15m 的时间来按下链接而导致失败的地方。当我创建 JWT 令牌时,我使用了以下代码:

jwt.sign(payload, secret, { expiresIn: "15m" });

谁能告诉我如何解决这个问题?如何操纵 JWT 令牌的内部时间以使其看起来像是 15 分钟过去了?

标签: node.jsjwtintegration-testing

解决方案


推荐阅读