This commit is contained in:
Timothy Jaeryang Baek
2026-04-13 14:13:03 -05:00
parent d0188f3fe1
commit 050c4b97a9
+9 -4
View File
@@ -536,15 +536,20 @@ class OAuthClientManager:
'server_metadata_url': (oauth_client_info.issuer if oauth_client_info.issuer else None), 'server_metadata_url': (oauth_client_info.issuer if oauth_client_info.issuer else None),
} }
if oauth_client_info.server_metadata and oauth_client_info.server_metadata.code_challenge_methods_supported: # Default to S256 for OAuth 2.1 (PKCE is mandatory per RFC 9700)
kwargs['code_challenge_method'] = 'S256'
# Only remove PKCE if metadata explicitly excludes S256
if ( if (
isinstance( oauth_client_info.server_metadata
and oauth_client_info.server_metadata.code_challenge_methods_supported
and isinstance(
oauth_client_info.server_metadata.code_challenge_methods_supported, oauth_client_info.server_metadata.code_challenge_methods_supported,
list, list,
) )
and 'S256' in oauth_client_info.server_metadata.code_challenge_methods_supported and 'S256' not in oauth_client_info.server_metadata.code_challenge_methods_supported
): ):
kwargs['code_challenge_method'] = 'S256' del kwargs['code_challenge_method']
self.clients[client_id] = { self.clients[client_id] = {
'client': self.oauth.register(**kwargs), 'client': self.oauth.register(**kwargs),