我正在制作"忘记密码"。我正在尝试使用email + current_time创建重置令牌。电子邮件是用户登录,而代码将检查时间> = 5分钟,然后此链接将无效。这是我的代码:
// preparing token email + time
Date now = new Date();
String prepareToken = "?email="+email+"&tokenTime="+now.getTime();
// encrypt prepareToken value
Encryptor enc = new Encryptor();
resetToken = enc.encrypt(resetToken);
令牌将以http://domainname.com/ForgotPassword?resetToken=adj23498ljj238809802340823
的形式发送 问题:
当用户点击它然后我得到了请求参数,显然解密了这个参数,但我怎么能在一个字符串+时间内收到电子邮件作为另一个字符串
请告知
答案 0 :(得分:0)
如果您的问题只是解析已解码的String以获取某些参数的Map,我建议您阅读Parse a URI String into Name-Value Collection。
希望它有所帮助。
编辑:
假设您拥有上一个链接中的splitQuery(URL url)方法,并且您已成功解码该令牌:
public String getEmailFromToken(String decodedToken) {
// if you decoded your token it will looks like the prepareToken String
String stubUrl = "http://localhost"+decodedToken;
Map<String,String> map = splitQuery(new URL(stubUrl));
return map.get("timeToken");
}
我创建了一个正确形成的URL来尊重URL语法。 通过少量调整,您应该能够为String实现splitQuery。我希望你能做到这一点。