3232# https://flask-login.readthedocs.io/en/latest
3333login_manager = LoginManager ()
3434login_manager .init_app (app )
35+
36+
3537@login_manager .unauthorized_handler
3638def unauthorized ():
37- return 'You must be logged in to access this content.' , 403
39+ return "You must be logged in to access this content." , 403
40+
3841
3942# Naive database setup
4043try :
@@ -51,6 +54,7 @@ def unauthorized():
5154def load_user (user_id ):
5255 return User .get (user_id )
5356
57+
5458@app .route ("/" )
5559def index ():
5660 if current_user .is_authenticated :
@@ -65,6 +69,7 @@ def index():
6569 else :
6670 return '<a class="button" href="/login">Login with Google</a>'
6771
72+
6873@app .route ("/login" )
6974def login ():
7075 # Find out what URL to hit for Google login
@@ -80,6 +85,7 @@ def login():
8085 )
8186 return redirect (request_uri )
8287
88+
8389@app .route ("/login/callback" )
8490def callback ():
8591 # Get authorization code Google sent back to you
@@ -95,7 +101,7 @@ def callback():
95101 token_endpoint ,
96102 authorization_response = request .url ,
97103 redirect_url = request .base_url ,
98- code = code
104+ code = code ,
99105 )
100106 token_response = requests .post (
101107 token_url ,
@@ -139,14 +145,17 @@ def callback():
139145 # Send user back to homepage
140146 return redirect (url_for ("index" ))
141147
148+
142149@app .route ("/logout" )
143150@login_required
144151def logout ():
145152 logout_user ()
146153 return redirect (url_for ("index" ))
147154
155+
148156def get_google_provider_cfg ():
149157 return requests .get (GOOGLE_DISCOVERY_URL ).json ()
150158
159+
151160if __name__ == "__main__" :
152161 app .run (ssl_context = "adhoc" )
0 commit comments