1414
1515"""
1616
17- from asgi_tools import App , ResponseRedirect
1817from asgi_sessions import SessionMiddleware
18+ from asgi_tools import App , ResponseRedirect
19+
1920from aioauth_client import GoogleClient
2021
2122from .config import CREDENTIALS
2223
23-
2424app = App ()
25- app .middleware (SessionMiddleware .setup (secret_key = ' aioauth-client' ))
25+ app .middleware (SessionMiddleware .setup (secret_key = " aioauth-client" )) # noqa:
2626
2727
28- class cfg :
29- redirect_uri = ' http://localhost:5000/oauth/google' # define it in google api console
28+ class CFG :
29+ redirect_uri = " http://localhost:5000/oauth/google" # define it in google api console
3030
3131 # client id and secret from google api console
32- client_id = CREDENTIALS [' google' ][ ' client_id' ]
33- client_secret = CREDENTIALS [' google' ][ ' client_secret' ]
32+ client_id = CREDENTIALS [" google" ][ " client_id" ]
33+ client_secret = CREDENTIALS [" google" ][ " client_secret" ]
3434
3535 # secret_key for session encryption
3636 # key must be 32 url-safe base64-encoded bytes
37- secret_key = b' abcdefghijklmnopqrstuvwxyz123456'
37+ secret_key = b" abcdefghijklmnopqrstuvwxyz123456"
3838
3939
40- @app .route (' /oauth/google' )
40+ @app .route (" /oauth/google" )
4141async def oauth (request ):
4242 client = GoogleClient (
43- client_id = cfg .client_id ,
44- client_secret = cfg .client_secret
43+ client_id = CFG .client_id ,
44+ client_secret = CFG .client_secret ,
4545 )
4646
47- if 'code' not in request .url .query :
48- return ResponseRedirect (client .get_authorize_url (
49- scope = 'email profile' ,
50- redirect_uri = cfg .redirect_uri
51- ))
47+ if "code" not in request .url .query :
48+ return ResponseRedirect (
49+ client .get_authorize_url (
50+ scope = "email profile" ,
51+ redirect_uri = CFG .redirect_uri ,
52+ ),
53+ )
5254
5355 token , data = await client .get_access_token (
54- request .url .query [' code' ],
55- redirect_uri = cfg .redirect_uri
56+ request .url .query [" code" ],
57+ redirect_uri = CFG .redirect_uri ,
5658 )
57- request .session [' token' ] = token
58- return ResponseRedirect ('/' )
59+ request .session [" token" ] = token
60+ return ResponseRedirect ("/" )
5961
6062
6163def login_required (fn ):
@@ -65,28 +67,28 @@ def login_required(fn):
6567 """
6668
6769 async def wrapped (request , ** kwargs ):
68- if ' token' not in request .session :
69- return ResponseRedirect (' /oauth/google' )
70+ if " token" not in request .session :
71+ return ResponseRedirect (" /oauth/google" )
7072
7173 client = GoogleClient (
72- client_id = cfg .client_id ,
73- client_secret = cfg .client_secret ,
74- access_token = request .session [' token' ]
74+ client_id = CFG .client_id ,
75+ client_secret = CFG .client_secret ,
76+ access_token = request .session [" token" ],
7577 )
7678
7779 try :
7880 user , info = await client .user_info ()
79- except Exception :
80- return ResponseRedirect (cfg .oauth_redirect_path )
81+ except Exception : # noqa:
82+ return ResponseRedirect (CFG .oauth_redirect_path )
8183
8284 return await fn (request , user , ** kwargs )
8385
8486 return wrapped
8587
8688
87- @app .route ('/' )
89+ @app .route ("/" )
8890@login_required
89- async def index (request , user ):
91+ async def index (_ , user ):
9092 text = f"""
9193 <link rel="stylesheet"
9294 href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" />
0 commit comments