繁体   English   中英

检查登录用户的帐户是否仍与数据库匹配或存在的最佳解决方案是什么?

[英]What is the best solution for checking if a logged-in user's account still matches or exists from the database?

如果每次登录的用户刷新或重新进入站点时,它都会从数据库中检查该帐户是否仍然存在或与数据库匹配,而不牺牲站点的性能,这是一种好习惯吗?

我想做的是,对于登录用户所做的每项活动(甚至导航具有身份验证的页面),如果凭据(例如用户名和密码)仍与数据库匹配,它将重新验证该帐户。 解决此类问题的最佳解决方案是什么?

设置会话并在每个相关页面中检查它。 如果需要,设置一个超时时间,并且如果登录是时间敏感的,例如银行闲置时间在X分钟内(通常是5或10)将您注销,那么您将需要持久性(如数据库表)或诸如Redis之类的持久性,您可以在其中更轻松地进行管理用户登录以及活动时间戳等

关于何时关闭帐户,无论如何该操作都应该刷新会话,因此注销或帐户关闭操作将调用相同的内容,因为它们不再被登录。

然后,如果他们击中了一些非常敏感的东西,您可以再次要求他们输入密码并创建一个新的会话密钥。 就像在亚马逊上一样,即使在一段时间不活动之后,您也可以查看帐户中的某些内容,但是某些内容需要密码确认,例如查看个人数据等。

如果要考虑网站的性能,则可能不是瓶颈。 数据库查询和会话验证是无法避免的基本要求。

如果这些事情的速度很慢,请查看更好的代码(如果合适,请查看框架),如果没有,请缓存。

暂无
暂无

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

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