26 lines
922 B
Python
26 lines
922 B
Python
from flask import Blueprint, current_app
|
|
from flask_jwt_extended import jwt_required, create_access_token
|
|
from flask_apispec import use_kwargs, marshal_with, doc
|
|
from marshmallow import fields
|
|
|
|
from api.exceptions import BadRequestException
|
|
import api.constants as constants
|
|
|
|
from .serializers import token_response_schema
|
|
blueprint = Blueprint('login', __name__)
|
|
|
|
|
|
@doc(tags=['login'])
|
|
@blueprint.route('', methods=['POST'])
|
|
@jwt_required(optional=True)
|
|
@use_kwargs({
|
|
'username': fields.Str(required=True),
|
|
'password': fields.Str(required=True)
|
|
})
|
|
@marshal_with(token_response_schema)
|
|
def login_user(username, password, **kwargs):
|
|
if username == constants.API_USER and password == current_app.config[constants.API_PASS]:
|
|
return {'token': create_access_token(identity=username, fresh=True, expires_delta=False)}
|
|
else:
|
|
raise BadRequestException("Wrong combination of username and password")
|