我给用户发一封含有 密码重置URL 的邮件(点之后密码就重置了),我想这个链接只点一次就失效了,并且在地址栏手动输入 密码重置URL 也无效.
还有就是怎么辨别这封邮件是我发的呢.如果不能解决这些问题,那用户就可能随意重置其他用户的密码!
希望 有代码 或者参考    

解决方案 »

  1.   

    获取上次的链接
    通过url加密
      

  2.   

    获取用户request的上一次链接,通过正则匹配当前用户的邮箱url是否正确(这需要你自己配置相关文件)
      

  3.   

    个人认为这个没什么好纠结,你生成的链接应该是随机的,而且有效性只有一次,你访问链接的时候去除有效性并重置密码就可以了,至于你说URL输入地址无效我觉得很无聊,重置的链接只有在需要重置时才生成的随机性很强的数据,如果用户能自己猜到链接又怎样,关键你的有效重置信息列表里没那条URL信息,这样的话用户能猜到也是无用的。
    总之数据随机性很强就是了,至于你说的“用户能随意重置其它用户密码”我想不到他是怎么样实现的
      

  4.   

    生成一个随机的验证码,比如GUID好了,拼到URL里面
    把该验证码与相应的信息(比如用户ID)存入数据库
    用户点了这个url之后,先判断URL中的验证码数据库中是否存在且关联正确的用户,通过的话就认为该链接有效,并将该验证码记录从数据库中删除
    当用户再一次用这个url访问时,数据库中该验证码的记录已删除,因此验证不通过
    如果用户再一次申请重置密码的话,就生成一个新的验证码