2017-07-04 4 views
2

ユーザーのログイン時にカスタマイズをしたい。問題は、プロジェクトが暗黙的にユーザーログインを処理するフラスコセキュリティを使用していることです。 ユーザーのログイン時にデータベース内のユーザーのレコードを確認したい。フラスコセキュリティのログインを無効にする方法は?

フラスコセキュリティの「ログイン」機能を無効にするにはどうすればよいですか?

私はsimilar postを見ましたが、動作していません。 さらに、それは私がしたいことではありません。 一部のユーザーの場合は、デフォルトの動作を停止する必要があります。

だから、この種の問題を抱えている人はいますか?どうすればいい?

ありがとうございます!

答えて

3

あなたはフラスコ・セキュリティを設定するときには、ログインフォームを上書きすることができます。

user_datastore = SQLAlchemyUserDatastore(db, User, Role) 
security = Security(app, user_datastore, login_form=CustomLoginForm) 

次に、デフォルトのLoginFormを拡張するカスタムログインフォームクラスを作成します。また、ログイン試行の前または後に処理を行うためのvalidate関数をオーバーライドします。

from flask_security.forms import LoginForm 

class CustomLoginForm(LoginForm): 
    def validate(self): 
     # Put code here if you want to do stuff before login attempt 

     response = super(CustomLoginForm, self).validate() 

     # Put code here if you want to do stuff after login attempt 

     return response 

"reponse"は、ログインが成功したかどうかに基づいてTrueまたはFalseになります。ログイン中に発生した可能性のあるエラーをチェックする場合は、「self.errors」を参照してください。

グリーティング、ケビン;

関連する問題