Регулярное выражение для пароля в 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 Валидатор получит хешированный пароль, а не оригинал.

Другие вопросы по тегам