双因素身份验证 (2FA) 从 TOTP 令牌/密码检测时间步

问题描述 投票:0回答:2

在根据密钥验证令牌时,是否可以检测 TOTP 令牌/密码的时间步长度(例如 30 秒与 60 秒)?换句话说,步骤时间是否被编程到令牌中?

我正在尝试使用 speakeasy 验证 TOTP 令牌,但我的令牌有 60 秒时间步长,而不是验证器期望的默认 30 秒时间步长。因此,除非我指定时间步长为 60 秒,否则令牌不会验证。当将其转换为 REST API 时,我是否需要要求相关令牌的时间步长作为请求的一部分?

two-factor-authentication one-time-password
2个回答
0
投票

令牌没有编程时间步长,没有。如果您要创建具有 60 秒时间步长的令牌,那么您的验证服务也应始终为 60 秒时间步长。


0
投票

是的,这是可能的。默认情况下,时间窗口为 30 秒。您可以使用窗口值更改它。 1表示60秒,2表示90秒

// Verify a given token
var tokenValidates = speakeasy.totp.verify({
  secret: secret.base32,
  encoding: 'base32',
  token: '123456',
  window: 1
});
// Returns true if the token matches

© www.soinside.com 2019 - 2024. All rights reserved.