Soham Maity commited on
Commit
93e700d
·
1 Parent(s): 439f3f3

feat: implement application factory and Google OAuth integration

Browse files
Files changed (2) hide show
  1. app/__init__.py +45 -0
  2. 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