我是Rails 5的初学者,感谢您的帮助。
我有一个用户模型,显然可以在其中保存用户密码以进行可能的登录。
我要基于名为 identification_number的 text_field 自动设置密码。
我读过的所有内容都是关于使用Devise gem进行的,但是我没有使用它,也不想这么做。
再次感谢您的帮助。
答案 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以获得更多信息