10.6 证明超时失效的比较算式

最后更新于:2022-04-01 22:30:15

# 10.6 证明超时失效的比较算式 本节我们要证明 [10.2.4 节](#resetting-the-password)比较密码重设超时失效的算式是正确的。我们先来定义两个时间间隔:表示发送密码重设邮件后经过的时间,表示限制的失效时长(例如两个小时)。如果邮件发出后经过的时间比限制的失效时长长,说明此次密码重设请求已经失效,即: 如果用 表示现在的时间,表示发送邮件的时间,表示失效的时间(例如两个小时以前),那么: 把这两个等式代入第一个算式: 在这个不等式的两边乘于 -1 后得到: 把 = 2.hours.ago 代入这个不等式后就能得到[代码清单 10.53](#listing-user-model-password-reset-expired) 中的 `password_reset_expired?` 方法: ``` def password_reset_expired? reset_sent_at < 2.hours.ago end ``` [10.2.4 节](#resetting-the-password)说过,如果把 `<` 理解成“超过”而不是“小于号”的话,就能得到一个符合人类逻辑的句子:“密码重设邮件已经发出超过两小时”。
';