@@ -80,7 +80,11 @@ async def login_redirect(self, request: Request) -> RedirectResponse:
80
80
redirect_uri = self .get_redirect_uri (request )
81
81
state = "" .join ([random .choice (string .ascii_letters ) for _ in range (32 )])
82
82
return RedirectResponse (str (self ._oauth_client .prepare_request_uri (
83
- self .authorization_endpoint , redirect_uri = redirect_uri , state = state , scope = self .scope
83
+ self .authorization_endpoint ,
84
+ state = state ,
85
+ scope = self .scope ,
86
+ ** request .query_params ,
87
+ redirect_uri = redirect_uri ,
84
88
)), 303 )
85
89
86
90
async def token_redirect (self , request : Request ) -> RedirectResponse :
@@ -89,17 +93,15 @@ async def token_redirect(self, request: Request) -> RedirectResponse:
89
93
if not request .query_params .get ("state" ):
90
94
raise OAuth2LoginError (400 , "'state' parameter was not found in callback request" )
91
95
92
- url = request .url
93
- scheme = "http" if request .auth .http else "https"
94
- current_url = re .sub (r"^https?" , scheme , str (url ))
95
96
redirect_uri = self .get_redirect_uri (request )
97
+ scheme = "http" if request .auth .http else "https"
98
+ authorization_response = re .sub (r"^https?" , scheme , str (request .url ))
96
99
97
100
token_url , headers , content = self ._oauth_client .prepare_token_request (
98
101
self .token_endpoint ,
102
+ ** request .query_params ,
99
103
redirect_url = redirect_uri ,
100
- authorization_response = current_url ,
101
- code = request .query_params .get ("code" ),
102
- state = request .query_params .get ("state" ),
104
+ authorization_response = authorization_response ,
103
105
)
104
106
105
107
headers .update ({
0 commit comments