【发布时间】:2022-11-01 19:15:10
【问题描述】:
我正在尝试实现帐户激活和密码重置功能,我想回顾一下理论。
我目前有 2 个表,用户表和令牌表。用户注册。我将用户保存在数据库中,生成令牌并通过电子邮件发送。所以这就是我解决问题的方法:我正在创建一个 16 字节的令牌并使用它来创建链接,例如http://localhost:1200/api/activation/<token>。但是,在数据库中,我存储了散列令牌(使用 sha256 散列)。然后,理论上,当用户点击链接时,我对令牌执行 sha256 并查看它是否与存储在数据库中的那个匹配,对吧?我认为建议将哈希存储在数据库中的原因是因为如果攻击者可以访问数据库,他就不能冒充用户(它仍然需要原始令牌),对吧?
【问题讨论】:
标签: django security server backend