@@ -79,12 +79,13 @@ def get_redirect_uri(self, request: Request) -> str:
79
79
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
+
83
+ oauth2_query_params = dict (state = state , scope = self .scope , redirect_uri = redirect_uri )
84
+ oauth2_query_params .update (request .query_params )
85
+
82
86
return RedirectResponse (str (self ._oauth_client .prepare_request_uri (
83
87
self .authorization_endpoint ,
84
- state = state ,
85
- scope = self .scope ,
86
- ** request .query_params ,
87
- redirect_uri = redirect_uri ,
88
+ ** oauth2_query_params ,
88
89
)), 303 )
89
90
90
91
async def token_redirect (self , request : Request , ** httpx_client_args ) -> RedirectResponse :
@@ -97,11 +98,12 @@ async def token_redirect(self, request: Request, **httpx_client_args) -> Redirec
97
98
scheme = "http" if request .auth .http else "https"
98
99
authorization_response = re .sub (r"^https?" , scheme , str (request .url ))
99
100
101
+ oauth2_query_params = dict (redirect_url = redirect_uri , authorization_response = authorization_response )
102
+ oauth2_query_params .update (request .query_params )
103
+
100
104
token_url , headers , content = self ._oauth_client .prepare_token_request (
101
105
self .token_endpoint ,
102
- ** request .query_params ,
103
- redirect_url = redirect_uri ,
104
- authorization_response = authorization_response ,
106
+ ** oauth2_query_params ,
105
107
)
106
108
107
109
headers .update ({
0 commit comments