1
8
仅供参考,您可能希望签出restful_身份验证插件,因为它将为您执行此操作。为什么要自己滚? 作为“认证”的方式是:
代码截图(从我的用户类随机复制粘贴,因此不要盲目粘贴此内容):
|
2
1
对于Ethan的评论,什么是虚拟属性,虚拟属性是不在数据库中的属性,就像Matt的attr_accessor:password,通过这种方式,您可以接受来自用户的输入,但不必以那种形式存储,在这种情况下,我们希望能够接受明文密码,但我们希望将其加密存储。为此,我们有一个虚拟属性:password,在数据库中,我们将其存储为加密的\密码。 |
3
1
好吧,你可以重写setter:
而这将 总是 加密值。你不需要在保存之前 或 一个属性访问器。 |
4
1
请注意,最好为每个用户选择一个随机的n位值(在创建该用户时),并在散列密码时将其预先发送给密码。 原因是:如果任何人获得了你的数据库,他们不仅不能立即看到用户的密码,他们也看不到两个用户是否有相同的密码(如果其中一个用户获取了你的数据库,这一点很重要),并且某种类型的哈希破解攻击(彩虹表)变得更加困难。 |
Stilian · 存储库设置中没有Github页面部分 2 年前 |
Kellen · 查看$卷展栏功能列表 2 年前 |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
johncssjs · 将数组转换为每个元素的嵌套哈希 2 年前 |
solidsnake99 · Rails db:如何绕过验证 2 年前 |