|
|
1
8
仅供参考,您可能希望签出restful_身份验证插件,因为它将为您执行此操作。为什么要自己滚? 作为“认证”的方式是:
代码截图(从我的用户类随机复制粘贴,因此不要盲目粘贴此内容):
|
|
|
2
1
对于Ethan的评论,什么是虚拟属性,虚拟属性是不在数据库中的属性,就像Matt的attr_accessor:password,通过这种方式,您可以接受来自用户的输入,但不必以那种形式存储,在这种情况下,我们希望能够接受明文密码,但我们希望将其加密存储。为此,我们有一个虚拟属性:password,在数据库中,我们将其存储为加密的\密码。 |
|
|
3
1
好吧,你可以重写setter:
而这将 总是 加密值。你不需要在保存之前 或 一个属性访问器。 |
|
|
4
1
请注意,最好为每个用户选择一个随机的n位值(在创建该用户时),并在散列密码时将其预先发送给密码。 原因是:如果任何人获得了你的数据库,他们不仅不能立即看到用户的密码,他们也看不到两个用户是否有相同的密码(如果其中一个用户获取了你的数据库,这一点很重要),并且某种类型的哈希破解攻击(彩虹表)变得更加困难。 |
|
|
JBryanB · 如何从基本抽象类访问类属性 3 年前 |
|
|
Gabe Tucker · 无法在golang中分配接口对象指针 3 年前 |
|
|
jkone27 · F#-在编译时从字符串生成简单的空类型 8 年前 |
|
|
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 8 年前 |
|
|
Randall Flagg · 访问propertyinfo中的属性 8 年前 |
|
|
Kacper · 在反映的全名和成员c后的“*”中,“+”是什么意思# 8 年前 |
|
|
tobeypeters · 反射铸造 8 年前 |
|
|
myst02 · 如何在另一个方法之后调用该方法? 8 年前 |