Java 如何在24小时后检查url是否已使用且无效?

Java 如何在24小时后检查url是否已使用且无效?,java,android,ios,struts2,Java,Android,Ios,Struts2,我正在使用JavaStruts构建一个webapp。如何做到以下几点 1) 当网站发送更改忘记密码电子邮件时,我想使其仅在24小时内有效,并在用户更改密码后使url无效。如何做到这一点?有在线代码吗 2) 我应该以什么方式构建我的网站(据我研究,我知道我应该使用JSON),以便android应用程序和ios应用程序也显示与网站中相同的数据 我只想在移动应用程序中实现最低限度的前端和用户身份验证。其余的(我的意思是验证,认证,授权)都应该通过网站。那么,我应该如何开发该网站。我应该使用什么技术和A

我正在使用JavaStruts构建一个webapp。如何做到以下几点

1) 当网站发送更改忘记密码电子邮件时,我想使其仅在24小时内有效,并在用户更改密码后使url无效。如何做到这一点?有在线代码吗

2) 我应该以什么方式构建我的网站(据我研究,我知道我应该使用JSON),以便android应用程序和ios应用程序也显示与网站中相同的数据


我只想在移动应用程序中实现最低限度的前端和用户身份验证。其余的(我的意思是验证,认证,授权)都应该通过网站。那么,我应该如何开发该网站。我应该使用什么技术和API?我应该如何使用JSON来实现这一点?任何解释这一点的示例Web应用程序和android应用程序。

最简单的构建方法之一如下

  • 使用经过的时间作为参考
  • 以字符串形式获取当前经过的时间。(例如,在Java中,您可以执行
    String.valueOf(System.currentTimeMillis())
  • 现在对这个字符串进行编码,比如说使用一些密钥
  • 将此字符串作为URL中的查询字符串参数传递(例如www.myserver.com/forgotPassword?q=HGFreSD654FDHK)
  • 当用户单击链接时,您将获得此加密字符串。解密它并将其与当前时间进行比较
  • 如果经过的时间超过24小时,发送相应的错误消息,否则继续 编辑:
    对于OP指出的基于SMS的令牌,然后生成令牌,并将其与当前时间一起存储在数据库中,与用户名相对应,并在使用相同的令牌时验证是否相同。

    是否有关于ios的信息?是的。我还将构建一个iphone应用程序。所以它应该显示相同的网站数据。我有两个问题。1) System.currentTimeMillis()将是服务器时间,对吗?2) 我可以知道经过的时间是什么意思吗?
    System.currentTimeMillis()
    将以毫秒为单位显示自1970年以来经过的时间。谢谢你,桑托斯。我的网络应用程序将发送一个6位数的数字代码作为短信到用户的手机号码。用户需要在接下来的5分钟内在网站上输入它才能注册。你能在这个用例中帮助我吗。我不知道这里没有URL。我想节省webapp向数据库中的用户发送文本的时间,并在用户输入代码时获取系统时间。如果少于5分钟,则批准,否则重新发送代码。我想知道其他一些可能更简单的方法。好吧,如果涉及短信令牌,那么数据库就是正确和完整的证明方法。