我一直在研究尝试在网站上注册的用户的电子邮件验证的最佳做法。 (我正在运行laravel安装,这发生在php中,虽然这更像是一个理论问题)。我有几个问题想得到一些意见!
我一直在研究这个问题,我的目标是使我的系统完全可扩展,并且尽可能高效。欢迎任何信息/讨论。
答案 0 :(得分:2)
如果用户点击激活码并删除它,那么他会忘记点击它并再次点击它,当代码无法识别时,他可能会感到困惑。我会让激活码保持活动状态,直到它过期,这至少会与您的电子邮件中的说明相符。
从MySQL表中删除数据(假设InnoDB)将空格标记为准备删除。后来,后台线程确实删除了它,并且空间可以重复使用。但与任何碎片过程一样,对于大多数未来的行,空间可能太窄。最后,如果您运行OPTIMIZE TABLE,表格将被复制,这会自然对其进行碎片整理。
是,生成与电子邮件关联的唯一键。让它在相当短的时间内到期,也许是1小时。
我会使用UUID()。用户应该点击应用发送给他们的电子邮件中的链接 - 用户不必输入令牌。因此,如果它很长,它不是一种负担。 UUID()是生成强独特随机令牌的好方法。