如何获取客户端实际时间和时区以执行系统时间检查

how to get clients actual time and timezone to perform system time check

这可能是一个非常模糊的问题,但请耐心等待。

我正在开发一个应用程序,它要求我在客户端计算机上执行系统时间检查。我试图解决的问题是,当客户跨时区旅行并更改他们的系统时间而不是更改时区时,它会在 oauth 协商期间产生问题。我应该如何解决这个问题,以便在客户端尝试登录应用程序时可以自行检测到这个问题,而不是必须手动检测此类问题?

听起来您的时区非常重要,因此您不应该相信 JavaScript 系统时间是 10 英尺长的棍子。

如果我是你,我会使用 PHP 对他们进行地理定位并根据他们的位置应用时区。

你会想看看Get PHP Timezone Name from Latitude and Longitude?

您可以在 new DateTime.now() 上调用 toUtc() 将其转换为 UTC。如果它在 UTC 中,它不应该受到时区的影响,并且字符串表示形式将类似于 "2013-10-18 08:52:16.861Z"(末尾的 Z 表示 UTC)。

您应该能够在 UTC 中使用 DateTime 进行 OAuth 协商。如果没有,请分享更多细节;这可能是 Dart 或您的 OAuth 客户端中的错误。