ccproxy.plugins.oauth_claude¶
ccproxy.plugins.oauth_claude
¶
OAuth Claude plugin for standalone Claude OAuth authentication.
ClaudeOAuthClient
¶
ClaudeOAuthClient(
config,
storage=None,
http_client=None,
hook_manager=None,
detection_service=None,
settings=None,
)
Bases: BaseOAuthClient[ClaudeCredentials]
Claude OAuth implementation for the OAuth Claude plugin.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
ClaudeOAuthConfig
|
OAuth configuration |
required |
storage
|
TokenStorage[ClaudeCredentials] | None
|
Token storage backend |
None
|
http_client
|
AsyncClient | None
|
Optional HTTP client (for request tracing support) |
None
|
hook_manager
|
Any | None
|
Optional hook manager for emitting events |
None
|
detection_service
|
CLIDetectionService | None
|
Optional CLI detection service for headers |
None
|
settings
|
Settings | None
|
Optional settings for HTTP client configuration |
None
|
Source code in ccproxy/plugins/oauth_claude/client.py
get_custom_headers
¶
Get Claude-specific HTTP headers.
Returns:
| Type | Description |
|---|---|
dict[str, str]
|
Dictionary of custom headers |
Source code in ccproxy/plugins/oauth_claude/client.py
parse_token_response
async
¶
Parse Claude-specific token response.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
dict[str, Any]
|
Raw token response from Claude |
required |
Returns:
| Type | Description |
|---|---|
ClaudeCredentials
|
Claude credentials object |
Raises:
| Type | Description |
|---|---|
OAuthError
|
If response parsing fails |
Source code in ccproxy/plugins/oauth_claude/client.py
refresh_token
async
¶
Refresh Claude access token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
refresh_token
|
str
|
Refresh token |
required |
Returns:
| Type | Description |
|---|---|
ClaudeCredentials
|
New Claude credentials |
Raises:
| Type | Description |
|---|---|
OAuthError
|
If refresh fails |
Source code in ccproxy/plugins/oauth_claude/client.py
ClaudeOAuthConfig
¶
ClaudeOAuthProvider
¶
ClaudeOAuthProvider(
config=None,
storage=None,
http_client=None,
hook_manager=None,
detection_service=None,
settings=None,
)
Bases: ProfileLoggingMixin
Claude OAuth provider implementation for registry.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
ClaudeOAuthConfig | None
|
OAuth configuration |
None
|
storage
|
ClaudeOAuthStorage | None
|
Token storage |
None
|
http_client
|
AsyncClient | None
|
Optional HTTP client (for request tracing support) |
None
|
hook_manager
|
Any | None
|
Optional hook manager for emitting events |
None
|
detection_service
|
CLIDetectionService | None
|
Optional CLI detection service for headers |
None
|
settings
|
Settings | None
|
Optional settings for HTTP client configuration |
None
|
Source code in ccproxy/plugins/oauth_claude/provider.py
requires_client_secret
property
¶
Whether this provider requires a client secret.
get_authorization_url
async
¶
Get the authorization URL for OAuth flow.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
state
|
str
|
OAuth state parameter for CSRF protection |
required |
code_verifier
|
str | None
|
PKCE code verifier (if PKCE is supported) |
None
|
Returns:
| Type | Description |
|---|---|
str
|
Authorization URL to redirect user to |
Source code in ccproxy/plugins/oauth_claude/provider.py
handle_callback
async
¶
Handle OAuth callback and exchange code for tokens.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
code
|
str
|
Authorization code from OAuth callback |
required |
state
|
str
|
State parameter for validation |
required |
code_verifier
|
str | None
|
PKCE code verifier (if PKCE is used) |
None
|
redirect_uri
|
str | None
|
Redirect URI used in authorization (optional) |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
Claude credentials object |
Source code in ccproxy/plugins/oauth_claude/provider.py
refresh_access_token
async
¶
Refresh access token using refresh token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
refresh_token
|
str
|
Refresh token from previous auth |
required |
Returns:
| Type | Description |
|---|---|
Any
|
New token response |
Source code in ccproxy/plugins/oauth_claude/provider.py
revoke_token
async
¶
Revoke an access or refresh token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Token to revoke |
required |
Source code in ccproxy/plugins/oauth_claude/provider.py
get_provider_info
¶
Get provider information for discovery.
Returns:
| Type | Description |
|---|---|
OAuthProviderInfo
|
Provider information |
Source code in ccproxy/plugins/oauth_claude/provider.py
validate_token
async
¶
Validate an access token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
access_token
|
str
|
Token to validate |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if token is valid |
Source code in ccproxy/plugins/oauth_claude/provider.py
get_user_info
async
¶
Get user information using access token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
access_token
|
str
|
Valid access token |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
User information or None |
Source code in ccproxy/plugins/oauth_claude/provider.py
get_storage
¶
get_config
¶
save_credentials
async
¶
Save credentials using provider's storage mechanism.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
credentials
|
Any
|
Claude credentials object |
required |
custom_path
|
Any | None
|
Optional custom storage path (Path object) |
None
|
Returns:
| Type | Description |
|---|---|
bool
|
True if saved successfully, False otherwise |
Source code in ccproxy/plugins/oauth_claude/provider.py
load_credentials
async
¶
Load credentials from provider's storage.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
custom_path
|
Any | None
|
Optional custom storage path (Path object) |
None
|
Returns:
| Type | Description |
|---|---|
Any | None
|
Credentials if found, None otherwise |
Source code in ccproxy/plugins/oauth_claude/provider.py
create_token_manager
async
¶
Create token manager with proper dependency injection.
Provided to allow core/CLI code to obtain a manager without importing plugin classes directly.
Source code in ccproxy/plugins/oauth_claude/provider.py
exchange_manual_code
async
¶
Exchange manual authorization code for tokens.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
code
|
str
|
Authorization code from manual entry |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Claude credentials object |
Source code in ccproxy/plugins/oauth_claude/provider.py
ClaudeOAuthStorage
¶
Bases: BaseJsonStorage[ClaudeCredentials]
Claude OAuth-specific token storage implementation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
storage_path
|
Path | None
|
Path to storage file |
None
|
Source code in ccproxy/plugins/oauth_claude/storage.py
save
async
¶
Save Claude credentials.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
credentials
|
ClaudeCredentials
|
Claude credentials to save |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if saved successfully, False otherwise |
Source code in ccproxy/plugins/oauth_claude/storage.py
load
async
¶
Load Claude credentials from file or system keychain.
Claude Code stores credentials in the system keychain and intentionally deletes the plain text file for security. This method tries file first, then falls back to the system keychain (macOS Keychain, Windows Credential Manager, or Linux Secret Service).
Returns:
| Type | Description |
|---|---|
ClaudeCredentials | None
|
Stored credentials or None |