【发布时间】:2017-01-05 08:45:04
【问题描述】:
我有一个auth.login() 用于登录的表单。
我想要实现的是:当我输入一个username和一个password时,
验证器获取 password 并计算其 bcrypt 哈希并将其与存储在 MySQL dB 中的哈希进行比较。
现在,感谢 Anthony,我了解到需要修改 CRYPT() 方法。
到目前为止我在db.py 中拥有的东西:
def check(value):
//do bcrypt logic here
class CUSTOM_CRYPT:
def __init__(self, error_message='error'):
self.e = error_message
def __call__(self, value):
if check(value):
return (value, None)
return (value, self.e)
custom_auth_table.password.requires = [IS_STRONG(min=5, special=0, upper=0, number=0),CUSTOM_CRYPT()]
这给了我错误:
Validation error, field:password <__restricted__.CUSTOM_CRYPT instance>
我怎样才能做到这一点?谢谢!
我的 MySQL 数据库(auth-user 表)只包含以下条目:
ID | Username | Password
1 | tom93 | $2b$12$5vkWB4HzKsOqvbII2IV9m.MqxLi9/fqrjbzyiett.a.6iQEf/p6Su
2 | jan88 | $2b$12$eovbX99oTIvz6ItgVsqI4e6o9KJuILHzZxnF.EVM0qbAU1xFrBi2.
【问题讨论】:
标签: web2py