この質問のように: Django の login_required をデフォルトにする最良の方法
Flask-Login
現在、のlogin_requiredデコレータを使用しています。でデフォルトの動作にする方法はありますFlask
か?
この質問のように: Django の login_required をデフォルトにする最良の方法
Flask-Login
現在、のlogin_requiredデコレータを使用しています。でデフォルトの動作にする方法はありますFlask
か?
私は楽器プロジェクトでこれを行いました。私はbefore_request
デコレータを使用します:
@app.before_request
def check_valid_login():
login_valid = 'user' in session # or whatever you use to check valid login
if (request.endpoint and
'static' not in request.endpoint and
not login_valid and
not getattr(app.view_functions[request.endpoint], 'is_public', False) ) :
return render_template('login.html', next=request.endpoint)
is_public()
次に、ログインせずにアクセスできるようにする必要があるいくつかの場所のデコレーターを作成しました。
def public_endpoint(function):
function.is_public = True
return function
ブループリントを使用していて、ブループリント全体をログインで保護する必要がある場合は、全体before_request
をログインを要求するように設定できます。
これは、私が CMS ブループリントに使用するものです。
@cms.before_request
@login_required
def before_request():
if g.user.role != ROLE_ADMIN:
abort(401)
ユーザーがログインしているかどうかのみを確認する必要がある場合 (ユーザーが特権を持っているかどうかは確認しない場合) は、単純pass
に関数を実行できます。