예제 #1
0
from app.schemas.token import TokenSchema
from app.schemas.user import UserSchema
# Import models
from app.models.user import User


@docs.register
@doc(description=
     'OAuth2 compatible token login, get an access token for future requests',
     tags=['login'])
@app.route(f'{config.API_V1_STR}/login/access-token', methods=['POST'])
@use_kwargs({
    'username': fields.Str(required=True),
    'password': fields.Str(required=True),
})
@marshal_with(TokenSchema())
def route_login_access_token(username, password):
    user = db_session.query(User).filter(User.email == username).first()
    if not user or not pwd_context.verify(password, user.password):
        abort(400, 'Incorrect email or password')
    elif not user.is_active:
        abort(400, 'Inactive user')
    access_token_expires = timedelta(
        minutes=config.ACCESS_TOKEN_EXPIRE_MINUTES)
    refresh_token_expires = timedelta(days=config.REFRESH_TOKEN_EXPIRE_DAYS)
    return {
        'access_token':
        create_access_token(identity=user.id,
                            expires_delta=access_token_expires),
        'refresh_token':
        create_refresh_token(identity=user.id,
예제 #2
0
# Import models
from app.models.user import User


@docs.register
@doc(
    description=
    "OAuth2 compatible token login, get an access token for future requests",
    tags=["login"],
)
@app.route(f"{config.API_V1_STR}/login/access-token", methods=["POST"])
@use_kwargs({
    "username": fields.Str(required=True),
    "password": fields.Str(required=True)
})
@marshal_with(TokenSchema())
def route_login_access_token(username, password):
    user = db_session.query(User).filter(User.email == username).first()
    if not user or not pwd_context.verify(password, user.password):
        abort(400, "Incorrect email or password")
    elif not user.is_active:
        abort(400, "Inactive user")
    access_token_expires = timedelta(
        minutes=config.ACCESS_TOKEN_EXPIRE_MINUTES)
    return {
        "access_token":
        create_access_token(identity=user.id,
                            expires_delta=access_token_expires),
        "token_type":
        "bearer",
    }