2323from .auth_schemes import OpenIdConnectWithConfig
2424from .auth_tool import AuthConfig
2525from .exchanger .oauth2_credential_exchanger import OAuth2CredentialExchanger
26+ from .oauth2_credential_util import _normalize_oauth_scopes
2627
2728if TYPE_CHECKING :
2829 from ..sessions .state import State
@@ -161,7 +162,7 @@ def generate_auth_uri(
161162
162163 if isinstance (auth_scheme , OpenIdConnectWithConfig ):
163164 authorization_endpoint = auth_scheme .authorization_endpoint
164- scopes = auth_scheme .scopes
165+ scopes = _normalize_oauth_scopes ( auth_scheme .scopes )
165166 else :
166167 authorization_endpoint = (
167168 auth_scheme .flows .implicit
@@ -173,17 +174,20 @@ def generate_auth_uri(
173174 or auth_scheme .flows .password
174175 and auth_scheme .flows .password .tokenUrl
175176 )
176- scopes = (
177- auth_scheme .flows .implicit
178- and auth_scheme .flows .implicit .scopes
179- or auth_scheme .flows .authorizationCode
180- and auth_scheme .flows .authorizationCode .scopes
181- or auth_scheme .flows .clientCredentials
182- and auth_scheme .flows .clientCredentials .scopes
183- or auth_scheme .flows .password
184- and auth_scheme .flows .password .scopes
185- )
186- scopes = list (scopes .keys ())
177+ if auth_scheme .flows .implicit :
178+ scopes = _normalize_oauth_scopes (auth_scheme .flows .implicit .scopes )
179+ elif auth_scheme .flows .authorizationCode :
180+ scopes = _normalize_oauth_scopes (
181+ auth_scheme .flows .authorizationCode .scopes
182+ )
183+ elif auth_scheme .flows .clientCredentials :
184+ scopes = _normalize_oauth_scopes (
185+ auth_scheme .flows .clientCredentials .scopes
186+ )
187+ elif auth_scheme .flows .password :
188+ scopes = _normalize_oauth_scopes (auth_scheme .flows .password .scopes )
189+ else :
190+ scopes = []
187191
188192 client = OAuth2Session (
189193 auth_credential .oauth2 .client_id ,
0 commit comments