ソースを参照

feat: optimize service api authorization header invalid error (#910)

tags/0.3.15
takatost 2年前
コミット
09ea27f1ee
コミッターのメールアドレスに関連付けられたアカウントが存在しません
1個のファイルの変更6行の追加6行の削除
  1. 6
    6
      api/controllers/service_api/wraps.py

+ 6
- 6
api/controllers/service_api/wraps.py ファイルの表示

@@ -17,7 +17,7 @@ def validate_app_token(view=None):
def decorated(*args, **kwargs):
api_token = validate_and_get_api_token('app')

app_model = db.session.query(App).get(api_token.app_id)
app_model = db.session.query(App).filter(App.id == api_token.app_id).first()
if not app_model:
raise NotFound()

@@ -44,7 +44,7 @@ def validate_dataset_token(view=None):
def decorated(*args, **kwargs):
api_token = validate_and_get_api_token('dataset')

dataset = db.session.query(Dataset).get(api_token.dataset_id)
dataset = db.session.query(Dataset).filter(Dataset.id == api_token.dataset_id).first()
if not dataset:
raise NotFound()

@@ -64,14 +64,14 @@ def validate_and_get_api_token(scope=None):
Validate and get API token.
"""
auth_header = request.headers.get('Authorization')
if auth_header is None:
raise Unauthorized()
if auth_header is None or ' ' not in auth_header:
raise Unauthorized("Authorization header must be provided and start with 'Bearer'")

auth_scheme, auth_token = auth_header.split(None, 1)
auth_scheme = auth_scheme.lower()

if auth_scheme != 'bearer':
raise Unauthorized()
raise Unauthorized("Authorization scheme must be 'Bearer'")

api_token = db.session.query(ApiToken).filter(
ApiToken.token == auth_token,
@@ -79,7 +79,7 @@ def validate_and_get_api_token(scope=None):
).first()

if not api_token:
raise Unauthorized()
raise Unauthorized("Access token is invalid")

api_token.last_used_at = datetime.utcnow()
db.session.commit()

読み込み中…
キャンセル
保存