【发布时间】:2015-01-23 11:36:00
【问题描述】:
我有一个可供移动应用程序访问的 REST API。我已经包含了一些基本的身份验证配置,其中之一是基于时间的;客户端 (Android) 获取系统当前时间(Java 命令 System.getCurrentTimeMillis() --> 当前时间与 UTC 1970 年 1 月 1 日午夜之间的差异,以毫秒为单位),以及服务器处理呼叫的时间,它做同样的事情,然后比较两个值并且差异小于 10 秒,它认为调用有效。
问题是我看到一些(实际上只是几个)调用,其中客户端和服务器之间的差异大约是 1 小时,这让我觉得这个 Java 函数可能会受到一些内部配置的影响在设备上...
谢谢!
【问题讨论】:
-
嗯,是的,如果您手动调整手机上的系统时钟,那将改变
System.getCurrentTimeMillis()的结果...(虽然不清楚您实现的是真正的身份验证... .) -
检查客户端和服务器的时区是否相同。
-
(A) 你为什么要关心客户端时钟上的时间?这如何提供任何安全性? (B) 在 StackOverflow 中搜索 java、date 和 Joda 等术语,以找到数百个有关如何处理日期时间的有用问题和解答。
-
@BasilBourque:绝对不是那个副本。
标签: java rest authentication time jersey