web2py アプリケーションのログイン プロセスに auth モジュールを使用しています。正規表現を使用してパスワードを検証したいのですが、方法が見つかりませんでした。正規表現を受け入れるようにアクセス制御を変更するにはどうすればよいでしょうか。
1 に答える
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
、バリデーターは正規表現の先頭に「^」を追加することに注意してください。
IS_MATCH
また、バリデーターの前にCRYPT
バリデーターを挿入する理由は、バリデーターがパスワードをハッシュして変換するためであることに注意してください。そのため、バリデーターの後にCRYPT
適用されるバリデーターは、元のパスワードではなく、ハッシュされたパスワードを受け取ります。CRYPT
于 2016-03-17T17:31:40.357 に答える