from praisonai.mcp_server.auth.oauth import OAuthConfig, OAuthManager
# Configure OAuth
config = OAuthConfig(
authorization_endpoint="https://auth.example.com/authorize",
token_endpoint="https://auth.example.com/token",
client_id="my-mcp-client",
default_scopes=["openid", "profile", "tools:read"],
use_pkce=True, # Required for OAuth 2.1
)
oauth = OAuthManager(config)
# Create authorization URL with PKCE
auth_url, auth_request = oauth.create_authorization_url(
scopes=["openid", "profile", "tools:call"],
)
print(f"Auth URL: {auth_url}")
print(f"State: {auth_request.state}")
print(f"Code verifier: {auth_request.code_verifier}")
print(f"Code challenge: {auth_request.code_challenge}")
# After user authorizes, exchange code for token
# token = await oauth.exchange_code(code, auth_request)