【发布时间】:2017-07-11 16:28:30
【问题描述】:
这可能是一个非常模糊的问题,但请多多包涵。
我正在开发一个需要我在客户端机器上执行系统时间检查的应用程序。我要解决的问题是,当客户跨时区旅行并更改其系统时间而不是更改时区时,它会在 oauth 协商期间产生问题。我应该如何解决此问题,以便在客户端尝试登录应用程序时可以自行检测到此问题,而不必手动检测此类问题?
【问题讨论】:
标签: javascript dart ntp
这可能是一个非常模糊的问题,但请多多包涵。
我正在开发一个需要我在客户端机器上执行系统时间检查的应用程序。我要解决的问题是,当客户跨时区旅行并更改其系统时间而不是更改时区时,它会在 oauth 协商期间产生问题。我应该如何解决此问题,以便在客户端尝试登录应用程序时可以自行检测到此问题,而不必手动检测此类问题?
【问题讨论】:
标签: javascript dart ntp
您可以在new DateTime.now() 上调用toUtc() 将其转换为UTC。如果它是 UTC,它应该不受时区的影响,并且字符串表示形式看起来像 "2013-10-18 08:52:16.861Z"(最后的 Z 表示 UTC)。
您应该能够在 UTC 中使用 DateTime 进行 OAuth 协商。如果没有,请分享更多细节;这可能是 Dart 或您的 OAuth 客户端中的错误。
【讨论】:
听起来你的时区很重要,所以你不应该相信 JavaScript 系统时间只有 10 英尺。
如果我是你,我会使用 PHP 对它们进行地理定位并根据它们的位置应用时区。
【讨论】: