如何处理用户从网站删除帐户的情况?

问题描述 投票:0回答:3

作为开发者,用户从网站删除帐户应如何处理?

如果有人猜测用户密码并删除其帐户,您希望能够恢复该帐户,因此立即彻底删除它并不是答案。

另一方面,如果您确定要删除某个帐户,该帐户仍会在备份中保存一段时间。

是否有处理帐户删除的最佳实践?

database backup account privacy
3个回答
1
投票

这通常通过所谓的“软删除”来处理,它将记录标记为已删除,但实际上并不删除它。 这是许多框架中的常见场景。例如,Laravel 使用

deleted_at
时间戳属性,因此您可以删除一个帐户,然后运行计划任务来真正删除超过一定时间(例如一周)之前删除的记录。 “取消删除”帐户只需将该字段设置为
null

软删除对于不可避免的“但我不是故意删除它”的情况很有用,而且当您删除用户帐户时可能需要完成其他任务时,例如从与您共享数据的第三方服务(例如邮件列表服务)中删除数据。

虽然法律要求您根据 GDPR 要求删除数据,但这并不是绝对的,取决于您的处理基础。例如,您可能有法律义务在一定时间内保留记录,或者您可能有合同要求保留记录,直到帐户支付所有账单。

您不应该依赖软删除来防御密码猜测——强大的密码策略和 2FA 应该具有更高的优先级。


1
投票

我会向用户帐户记录添加一个布尔字段,例如“IsDeleted”。这将表明用户帐户已被删除。此外,添加已删除的 DateTime 可能有助于稍后确定是否应该完全清除该用户帐户记录。 最好的做法是保持简单。


0
投票

这是我的解决方案。

在数据库表列中应该有一列用于用户访问权限。

例如。让列名为“user_role” 因此,根据用户权限,该列每次必须具有以下数据之一:管理员、版主、客户、禁用、删除。

该列必须有默认值,在这种情况下我会给它客户。

所以其余的都是可以更改的,例如用户可能会成为管理员或版主,而禁用意味着那些违反网站政策的人意味着您已经禁用了他们的帐户,而删除则意味着那些删除了他们的帐户的人。 因此,如果该帐户已被指定为删除,则应禁止在网站上获取和显示任何数据。

如果用户在删除帐户时尝试登录,请让他知道他的帐户将无法激活,因此他应该联系您,以防在删除帐户时出现问题。

© www.soinside.com 2019 - 2024. All rights reserved.