23 lines
821 B
Python
23 lines
821 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
|
|
|
|
from api.exceptions import BadRequestException
|
|
import api.constants as constants
|
|
|
|
from .models import TokenResponse
|
|
from .serializers import login_schema, token_response_schema
|
|
|
|
blueprint = Blueprint('login', __name__)
|
|
|
|
|
|
@blueprint.route('', methods=['POST'])
|
|
@jwt_required(optional=True)
|
|
@use_kwargs(login_schema)
|
|
@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 TokenResponse(create_access_token(identity=username, fresh=True))
|
|
else:
|
|
raise BadRequestException("Wrong combination of username and password")
|