自动为用户设置密码-无需设计

时间:2019-04-10 02:13:34

标签: ruby-on-rails

我是Rails 5的初学者,感谢您的帮助。

我有一个用户模型,显然可以在其中保存用户密码以进行可能的登录。

我要基于名为 identification_number的 text_field 自动设置密码。

我读过的所有内容都是关于使用Devise gem进行的,但是我没有使用它,也不想这么做。

再次感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

根据您的情况,密码字段只是另一个名为:identification_number的字符串字段。

但是,强烈建议不要在数据库中将密码保存为纯字符串。

如果将密码以纯字符串形式保存在数据库中,则会存在很多安全问题。

其中一些是:

  • 您拥有用户密码的完全访问权限
  • 如果有人以某种方式设法访问您的数据库,他们还将具有对用户密码的完全访问权限。

为了避免这些问题,大多数应用程序将密码字符串另存为带有某种salt的加密字符串,以增强熵。

通过Google的快速搜索,我发现了一些相关的博客文章,可以帮助您从头开始构建密码加密,例如:

不使用宝石: https://www.sitepoint.com/rails-userpassword-authentication-from-scratch-part-i/

使用一些宝石: http://railscasts.com/episodes/250-authentication-from-scratch?view=asciicast

除此之外,密码不是身份证号码。我不会使用这个名字。密码不用于标识用户。 id通常是标识号。最好将其命名为:password。另外,它不必是文本字段,也不应该那么长。

答案 1 :(得分:0)

您可以使用bcrypt gem来实现安全密码。

bcrypt ruby​​ gem为您提供has_secure_password方法。 has_secure_password方法通过对密码进行哈希处理和加盐处理来加密密码,并生成“ password_digest”。

您可以参考此link以获得更多信息