繁体   English   中英

使用PHP和MySQL的剩余时间

[英]Time remaining using PHP & MySQL

我目前有一个使用令牌可以兑换的网站,这些令牌在特定时间内有效。 例如,我赎回一个令牌,该令牌授予我24小时的访问权限。

现在,我想知道的是,如何最好地创建一个系统来检查令牌(令牌的时间)是否过期?

我当时想将每当有人赎回令牌时将当前时间放在MySQL数据库中,然后制作一个PHP脚本来定期检查是否经过了24、48等小时,然后从数据库中删除令牌。

任何想法或技巧都受到高度赞赏。

如果令牌保持可用状态(例如,通过会话),则可以对每个请求重新验证/检查令牌。

SELECT * FROM `tokens`
WHERE `token` = 'yourtoken' AND `date_redeemed` >= NOW() - INTERVAL 1 DAY;

如果没有任何结果,则令牌已过期。

如果令牌不能用于每个新请求,那么您自己的建议也可以。 您可以按照相同的方式进行操作:

UPDATE `tokens`
SET `expired` = NOW()
WHERE `date_redeemed` >= NOW() - INTERVAL 1 DAY

您甚至可能每1或2小时运行一次,具体取决于有多少个令牌。 我会做的是用cron作业。

将过期时间戳记放在令牌本身中。 根据您管理令牌的方式,您可能还希望放入一个覆盖随机和时间戳的加密校验和,以防止篡改。 例如

$token = $randString . $timestamp . $checksum;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM