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,
# 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", }