blacklist = set() # a token is unique by its jti def is_blacklisted(jti): return jti in blacklist # For active chats purpose active_chats = dict() # Initializing config data # Run app cors.init_app(app) db.init_app(app) guard.init_app(app, models.User, is_blacklisted=is_blacklisted) sslify.init_app(app) # Usernames must contain only letters (a-z), numbers (0-9), dashes (-), underscores (_) VALID_USERNAME_CHARS = set(["-", "_"] + [str(i) for i in range(0, 10)] + list(ascii_lowercase)) API_BASE_URL = "/api/v1" @app.route(API_BASE_URL) def home(): return {"Hello": "World"}, 200 ######################################### # Auth Routes #
from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate from flask_bcrypt import Bcrypt from flask_praetorian import Praetorian from config import Config app = Flask(__name__) app.config.from_object(Config) db = SQLAlchemy(app) migrate = Migrate(app, db) bcrypt = Bcrypt(app) guard = Praetorian() from app import routes, models with app.app_context(): guard.init_app(app, models.Users)
app.config["JWT_REFRESH_LIFESPAN"] = {"days": 1} app.config["SQLALCHEMY_DATABASE_URI"] = SQLALCHEMY_DATABASE_URI app.config["SQLALCHEMY_POOL_SIZE"] = 70000 app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False app.config["JWT_TOKEN_LOCATION"] = ["cookies"] app.config["JWT_ACCESS_COOKIE_PATH"] = "/" app.config["JWT_COOKIE_CSRF_PROTECT"] = True app.config['JWT_COOKIE_SECURE'] = False app.config["JWT_SECRET_KEY"] = SECRET_KEY app.config["CORS_HEADERS"] = "Content-Type" bcrypt = Bcrypt() db = SQLAlchemy(app) jwt = JWTManager(app) guard = Praetorian() ma = Marshmallow() CORS(app, supports_credentials=True, resources={r"/*": {"origins": ["*"]}}) pusher_client = pusher.Pusher(app_id=PUSHER_APP_ID, key=PUSHER_KEY, secret=PUSHER_SECRET, cluster=PUSHER_CLUSTER, ssl=True) from grader.models import User guard.init_app(app, User) from grader.autograder.routes import grading_bp app.register_blueprint(grading_bp)
from server import blueprint basedir = os.path.abspath(os.path.dirname(__file__)) load_dotenv(os.path.join(basedir, '.env')) app = create_app(os.environ.get('ENV') or 'dev') app.register_blueprint(blueprint) app.app_context().push() manager = Manager(app) migrate = Migrate(app, db) guard = Praetorian() manager.add_command('db', MigrateCommand) guard.init_app(app, user.User) @manager.command def run(): app.run(host='0.0.0.0') @manager.command def test(): """Runs the unit tests.""" tests = unittest.TestLoader().discover('app/test', pattern='test*.py') result = unittest.TextTestRunner(verbosity=2).run(tests) if result.wasSuccessful(): return 0 return 1