Code Bye

java怎么实现邮箱验证码失效的

 

大家给一点思路,我在进行某操作时,发送验证码到邮箱验证,怎么判断验证码在几分钟之后失效不能再用


5分
两种做法:
1、短验证码:服务器端记录了该验证码及对应的时间戳;
2、长验证码:验证码中包含时间戳,以及,服务器给该验证码内容的签名摘要;

5分
最简单的方法是:  
你调用发送验证码方法的时候 set.nowTime发送时当前的时间  set.userid
验证码比较的时候   把nowTime 与当前时间比较一下 看是否在有效时间内  

5分
发送验证码有个时间,从这个时间起记录,1分钟内,如没有验证,则过期。

5分
引用 1 楼  的回复:

两种做法:
1、短验证码:服务器端记录了该验证码及对应的时间戳;
2、长验证码:验证码中包含时间戳,以及,服务器给该验证码内容的签名摘要;

这个是正解


5分
引用 1 楼  的回复:

两种做法:
1、短验证码:服务器端记录了该验证码及对应的时间戳;
2、长验证码:验证码中包含时间戳,以及,服务器给该验证码内容的签名摘要;

是这样的

数据表中在生成验证码的时候保存一个 EXPIRE_TIME,然后使用:

SELECT * FROM EMAIL_VALIDATOR_CODE e WHERE e.TOKEN = :token AND e.EXPIRE_TIME < :now

如果能找到记录就 OK,否则就过期了。


5分
还有一个状态:
SELECT *
  FROM EMAIL_VALIDATOR_CODE e
 WHERE e.TOKEN = :token
   AND e.EXPIRE_TIME < :now
   AND e.STATUS = 0;

反正只要点过这个链接就将 STATUS 更新为 1,并记录更新时间,以及点击者源 IP 信息什么的。


5分
引用 7 楼  的回复:

还有一个状态:

SQL code
SELECT *
  FROM EMAIL_VALIDATOR_CODE e
 WHERE e.TOKEN = :token
   AND e.EXPIRE_TIME < :now
   AND e.STATUS = 0;

反正只要点过这个链接就将 STATUS 更新为 1,并记录更新时间,以及点击者源 IP 信息什么的。

具体实现有很多方式,原理lz能够明白就好了。


5分
两种做法:
1、短验证码:服务器端记录了该验证码及对应的时间戳;
2、长验证码:验证码中包含时间戳,以及,服务器给该验证码内容的签名摘要;
关键在于你能够记录下时间
感觉qq邮箱在发送激活邮件后他的系统会自动对链接进行访问(估计是验证链接安全性)所以你一点击他会说已经激活了 
引用 11 楼 u013810758 的回复:

感觉qq邮箱在发送激活邮件后他的系统会自动对链接进行访问(估计是验证链接安全性)所以你一点击他会说已经激活了 

sorry 答错了  

你可以将发送链接信息保存在数据库,访问链接时就会跳到指定的链接对应的方法中 再与系统时间匹配  


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明java怎么实现邮箱验证码失效的