Spaces:
Runtime error
Runtime error
Soham Maity commited on
Commit ·
93e700d
1
Parent(s): 439f3f3
feat: implement application factory and Google OAuth integration
Browse files- app/__init__.py +45 -0
- app/blueprints/__init__.py +0 -0
app/__init__.py
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from flask_dance.contrib.google import make_google_blueprint
|
| 2 |
+
from flask_dance.consumer.storage.sqla import SQLAlchemyStorage
|
| 3 |
+
from flask_sqlalchemy import SQLAlchemy
|
| 4 |
+
from flask_login import LoginManager
|
| 5 |
+
from flask_migrate import Migrate
|
| 6 |
+
from flask import Flask
|
| 7 |
+
|
| 8 |
+
db = SQLAlchemy()
|
| 9 |
+
migrate = Migrate()
|
| 10 |
+
login_manager = LoginManager()
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
def create_app():
|
| 14 |
+
app = Flask(__name__)
|
| 15 |
+
app.config.from_object("config.Config")
|
| 16 |
+
|
| 17 |
+
db.init_app(app)
|
| 18 |
+
migrate.init_app(app, db)
|
| 19 |
+
login_manager.init_app(app)
|
| 20 |
+
|
| 21 |
+
@login_manager.user_loader
|
| 22 |
+
def load_user(user_id):
|
| 23 |
+
from .models import User
|
| 24 |
+
|
| 25 |
+
return User.query.get(int(user_id))
|
| 26 |
+
|
| 27 |
+
from .blueprints.main import main_bp
|
| 28 |
+
|
| 29 |
+
app.register_blueprint(main_bp)
|
| 30 |
+
|
| 31 |
+
from .models import OAuth
|
| 32 |
+
|
| 33 |
+
google_bp = make_google_blueprint(
|
| 34 |
+
client_id=app.config["GOOGLE_CLIENT_ID"],
|
| 35 |
+
client_secret=app.config["GOOGLE_CLIENT_SECRET"],
|
| 36 |
+
scope=[
|
| 37 |
+
"https://www.googleapis.com/auth/userinfo.profile",
|
| 38 |
+
"https://www.googleapis.com/auth/userinfo.email",
|
| 39 |
+
"openid",
|
| 40 |
+
],
|
| 41 |
+
storage=SQLAlchemyStorage(OAuth, db.session),
|
| 42 |
+
)
|
| 43 |
+
app.register_blueprint(google_bp, url_prefix="/login")
|
| 44 |
+
|
| 45 |
+
return app
|
app/blueprints/__init__.py
ADDED
|
File without changes
|