如果你基于某些因素的考虑,在验证邮件的时候想检查一下验证信息的有效期,可以这样 ... 先在这个 VerificationController 里面,用一下 moment ... use moment ... 这个 moment 是在框架的 ioc Container 里面的一个东西 .. 它其实就是我们以前用的 moment.js ..
然后在 verify 方法里面 .. 判断一下 .. 如果 moment() 就是现在 .. 大于 moment .. 把验证信息的创建时间告诉它 .. 后面用一个 add . 3 ... days .. 意思就是,如果现在大于验证信息加上 3 天,我们就认为这个验证信息过期了 .. 也就是验证信息的有效期是 3 天 ... 你也可以使用 minutes ,表示分钟,hours ,表示小时 ..
这样我们就用去 flash 一条信息 ... type 是 danger ... 再设置一下 message .. Verification expired, please resend email verification. 再把用户重定向到用户页面上 ..
试验
回到浏览器 .. 再试一下 ... 注册一个用户 ... 输入用户名 .. 邮件地址 ... 设置一下用户的密码 ... 注册一下 ...
再回到数据库客户端 .. 看一下应用数据库里的这个 verifications 表 .. 这里现在有一条记录 .. 就是刚才创建用户的同时创建的 .. 这里我们可以手工修改一下 created_at 的值 ... 往前一个月 ..
找到发送给用户的验证邮件 ... 访问一下这个验证链接 ...
会提示验证信息已经过期了 ... 因为在应用里会判断,当前时间是不是大于验证信息创建的时间再加 3 天 .. 如果是的话,我们就认为这个验证信息已经过期了 ..
回到数据库客户端 ... 这个验证数据仍然会在这里 ..
判断了验证数据过期以后,可以把它删除掉 ... 用一下 verification.delete ... 把它删除掉 ..
回到浏览器 .. 重新再访问一下验证链接地址 ... 提示过期 ..
再回到数据库客户端 ... 检查一下 verifications 表里的东西 .. 过期的验证数据已经被删除掉了 ..