0

我正在创建一个网站,在用户注册后将发送确认电子邮件。我想拥有它,以便页面在几天后过期并且可以重复使用令牌。

因此,详细而言,用户将收到一封包含网页链接的电子邮件。该链接将通过GET方式将数据传递给网页,而这些数据将是证明用户身份的“令牌”。我正在考虑使用 PHP 函数uniqid,但这不允许重复使用令牌,并且出于其他原因我不喜欢它。有什么更好的方法?我对想法非常开放,如果有人能想到一种更好的方法来验证帐户并将其限制在几天内,请分享!

在这种情况下,“token”这个名字是正确的还是叫做别的东西?

编辑:我想我愿意使用类似的东西,uniqid()但它不会产生和容易猜到的令牌吗?

4

1 回答 1

1

你为什么要重用一个令牌呢?但总的来说,我会设置一个类似的表格:

token_id (varchar 75)
expiry_date (date field)

然后在请求时查找令牌。例如,可以使用每天运行的 cron 来删除过期的令牌。生成新令牌时,我会根据现有的 token_id 对其进行验证,以防止重复。

通过运行 cron,您可以“清理”旧令牌以腾出空间供重用。虽然如果你生成一个 75 字符的哈希,重复令牌的几率很小(当然取决于每天生成的令牌数量)。

于 2013-07-29T19:14:31.153 回答