gpt4 book ai didi

ruby-on-rails-3 - Rails -- 密码恢复

转载 作者:行者123 更新时间:2023-12-01 11:03:19 25 4
gpt4 key购买 nike

这个问题可能有点抽象,但我想知道实现密码恢复的最佳/标准方法是什么。我现在正尝试在我的代码中实现它,但我开始使用的方法似乎有点迂回/令人困惑,我想知道执行此操作的“Rails 方式”是什么。有什么建议吗?

最佳答案

密码通常应该被散列(最好是加盐)而不是加密,这样它们就无法被解密。然后,稍后,为了检查用户输入的密码是否正确,您可以获取他们输入的任何内容并使用相同的 salt 和哈希函数,看看它是否与您在数据库中的哈希相匹配。

以这种方式存储的密码无法恢复。恢复丢失密码的标准方法是:

  1. Bob 输入他的电子邮件地址(或用户名或其他)以表明他是谁
  2. 生成“密码重置 token ”,通常是一长串字母和数字,并以某种方式存储在与 Bob 关联的数据库中。
  3. Bob 收到了一封电子邮件,其中以某种方式附加了密码重置 token ,通常是在 URL 中(例如,http://fakesite.com/reset_password?token=long_token_generated_in_step_2
  4. 当 Bob 访问该 URL 时,站点会验证重置 token 是否有效,并允许 Bob 选择一个密码,然后以与他丢失的密码相同的方式对其进行加盐/哈希处理.

Devise 是 Rails 的身份验证 gem,它有一个 Recoverable strategy遵循这种模式。

一些网站应用额外的安全检查,因为电子邮件不是 100% 安全的。例如,您可能要求用户必须回答密保问题(通常在创建帐户时设置)才能收到密码重置电子邮件。

关于ruby-on-rails-3 - Rails -- 密码恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8720414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com