Регулярное выражение для пароля в web2py
Я использую модуль auth для процесса входа в систему для моего приложения web2py. Я хочу проверить пароль с помощью регулярных выражений, но не смог найти для него способ. Как мы могли бы изменить контроль доступа, чтобы принимать регулярные выражения
1 ответ
В файле модели (вероятно, в 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
, валидатор добавит к вашему регулярному выражению "^".
Также обратите внимание, что причина для вставки IS_MATCH
валидатор перед CRYPT
валидатор в том, что CRYPT
валидатор преобразует пароль, хэшируя его, поэтому любые валидаторы, примененные после CRYPT
Валидатор получит хешированный пароль, а не оригинал.