web2py中密码的正则表达式

时间:2016-03-17 17:03:33

标签: web2py web2py-modules

我正在使用auth模块进行web2py应用程序的登录过程。我想使用正则表达式验证密码但是找不到它的方法。我们如何修改访问控制以接受正则表达式< / p>

1 个答案:

答案 0 :(得分:2)

在模型文件中(可能在db.py中),您应该有以下行,它定义了所有Auth表,包括db.auth_user

auth.define_tables()

定义db.auth_user表后,其requires字段的password属性将设置为包含单个CRYPT验证程序的列表。如果要应用正则表达式验证,可以通过在IS_MATCH属性中的CRYPT验证程序之前插入requires验证程序来执行此操作。要执行此操作,之后的任何位置,请包含以下内容:

password_is_match = IS_MATCH(r'your_regex', error_message='Your error message',
                             search=True)
db.auth_user.password.requires.insert(0, password_is_match)

注意,如果你没有设置search=True,验证器会在你的正则表达式前加上&#34; ^&#34;。

另请注意,在IS_MATCH验证程序之前插入CRYPT验证程序的原因是CRYPT验证程序通过对其进行散列来转换密码,因此任何验证程序都应用之后 CRYPT验证程序将收到散列密码而不是原始密码。