处理TOTP实施(PHP或JavaScript)

时间:2019-02-18 12:41:02

标签: php security authentication login totp

我在我的一个应用程序中实现了2FA(TOTP方法)。密钥生成和TOTP代码验证均在服务器端(PHP)处理。在某些情况下,我的应用程序不接受TOTP应用程序(我的情况为Google Authenticator)生成的TOTP代码。我知道这是因为时差。我期待一种支持来自不同时区的用户的方法。

当前实施行为:

案例1(完美的作品):

  • 服务器默认时区设置为“亚洲/加尔各答”
  • 用户从印度启用TOTP
  • 用户始终从印度登录

情况2(登录失败):

  • 服务器默认时区设置为“亚洲/加尔各答”
  • 用户从印度启用TOTP
  • 从不同时区登录

情况3(登录失败):

  • 服务器默认时区设置为“亚洲/加尔各答”
  • 用户从不同时区启用TOTP
  • 从不同时区登录的用户

通常如何将TOTP集成到应用程序中以支持来自不同时区的用户?

从客户端(JS)生成机密和验证是最佳实践吗?

1 个答案:

答案 0 :(得分:2)

您应该始终将UTC用作时区。这是最简单的方法。