あなたのカスタムルートにフラスコの青写真を使用している場合は、青写真でその前に要求機能を追加することができます。
まず、青写真から認証を確認する関数を作成します。あなたはこのように、自分でフラスコ要求からAuthorization
ヘッダーを取得する必要があります:
from flask import request, abort, current_app
from werkzeug.http import parse_authorization_header
def check_blueprint_auth():
if 'Authorization' not in request.headers:
print('Authorization header not found for authentication')
return abort(401, 'Authorization header not found for authentication')
header = parse_authorization_header(request.headers['Authorization'])
username = None if header is None else header['username']
password = None if header is None else header['password']
return username == 'secretusername' and password == 'secretpass'
その後、あなたはそれぞれの青写真の要求の前に呼ばれるように、この機能を設定することができます。以下はbefore_request
機能を設定し、青写真の定義の例です:
from flask import Blueprint, current_app as app
# your auth function
from auth import check_blueprint_auth
blueprint = Blueprint('prefix_uri', __name__)
# this sets the auth function to be called
blueprint.before_request(check_blueprint_auth)
@blueprint.route('/custom_route/<some_value>', methods=['POST'])
def post_something(some_value):
# something
は最後に、あなたはあなたのeve
アプリで青写真をバインドする必要があります。 hereから部分的に撮影した青写真をバインドする方法の例、:
from eve import Eve
# your blueprint
from users import blueprint
from flask import current_app, request
app = Eve()
# register the blueprint to the main Eve application
app.register_blueprint(blueprint)
app.run()
お役に立てば幸いです。
出典
2016-07-02 14:13:11
gcw
ありがとうございます。私はそれをセッション認証で修正しました。私もこれを試してみる...あなたに感謝。 – DEVV911
ようこそ。それがあなたのために働くならば、それを解決されたものとしてマークするようにしてください。 –
ああ、それははるかに簡単です@ニコラ・イロッチ!それはeve docsで利用できるはずです。 – gcw