0

web2py アプリケーションのログイン プロセスに auth モジュールを使用しています。正規表現を使用してパスワードを検証したいのですが、方法が見つかりませんでした。正規表現を受け入れるようにアクセス制御を変更するにはどうすればよいでしょうか。

4

1 に答える 1

2

モデル ファイル (おそらく db.py) には、以下Authを含むすべてのテーブルを定義する次の行が必要db.auth_userです。

auth.define_tables()

db.auth_userテーブルが定義されると、そのフィールドの属性requirespassword、単一のバリデーターを含むリストになるように設定されますCRYPT。正規表現の検証を適用する場合は、属性のバリIS_MATCHデーターのにバリデーターを挿入することで実行できます。これを行うには、上記の行の後の任意の場所に次を含めます。CRYPTrequires

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 に答える