ccproxy.plugins.oauth_codex¶
ccproxy.plugins.oauth_codex
¶
OAuth Codex plugin for standalone OpenAI Codex OAuth authentication.
CodexOAuthClient
¶
Bases: BaseOAuthClient[OpenAICredentials]
Codex/OpenAI OAuth implementation for the OAuth Codex plugin.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
CodexOAuthConfig
|
OAuth configuration |
required |
storage
|
TokenStorage[OpenAICredentials] | 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
|
settings
|
Settings | None
|
Optional settings for HTTP client configuration |
None
|
Source code in ccproxy/plugins/oauth_codex/client.py
get_custom_auth_params
¶
get_custom_headers
¶
parse_token_response
async
¶
Parse OpenAI-specific token response.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
dict[str, Any]
|
Raw token response from OpenAI |
required |
Returns:
| Type | Description |
|---|---|
OpenAICredentials
|
OpenAI credentials object |
Raises:
| Type | Description |
|---|---|
OAuthError
|
If response parsing fails |
Source code in ccproxy/plugins/oauth_codex/client.py
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | |
refresh_token
async
¶
Refresh OpenAI access token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
refresh_token
|
str
|
Refresh token |
required |
Returns:
| Type | Description |
|---|---|
OpenAICredentials
|
New OpenAI credentials |
Raises:
| Type | Description |
|---|---|
OAuthError
|
If refresh fails |
Source code in ccproxy/plugins/oauth_codex/client.py
CodexOAuthConfig
¶
CodexOAuthProvider
¶
CodexOAuthProvider(
config=None,
storage=None,
http_client=None,
hook_manager=None,
settings=None,
)
Bases: ProfileLoggingMixin
Codex/OpenAI OAuth provider implementation for registry.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
CodexOAuthConfig | None
|
OAuth configuration |
None
|
storage
|
CodexTokenStorage | 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
|
settings
|
Settings | None
|
Optional settings for HTTP client configuration |
None
|
Source code in ccproxy/plugins/oauth_codex/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_codex/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
|
OpenAI credentials object |
Source code in ccproxy/plugins/oauth_codex/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_codex/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_codex/provider.py
get_provider_info
¶
Get provider information for discovery.
Returns:
| Type | Description |
|---|---|
OAuthProviderInfo
|
Provider information |
Source code in ccproxy/plugins/oauth_codex/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_codex/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_codex/provider.py
get_storage
¶
get_config
¶
save_credentials
async
¶
Save credentials using provider's storage mechanism.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
credentials
|
Any
|
OpenAI 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_codex/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_codex/provider.py
create_token_manager
async
¶
Create and return the token manager instance.
Provided to allow core/CLI code to obtain a manager without importing plugin classes directly.
Source code in ccproxy/plugins/oauth_codex/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
|
OpenAI credentials object |
Source code in ccproxy/plugins/oauth_codex/provider.py
CodexTokenStorage
¶
Bases: BaseJsonStorage[OpenAICredentials]
Codex/OpenAI 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_codex/storage.py
save
async
¶
Save OpenAI credentials.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
credentials
|
OpenAICredentials
|
OpenAI credentials to save |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if saved successfully, False otherwise |
Source code in ccproxy/plugins/oauth_codex/storage.py
load
async
¶
Load OpenAI credentials.
Returns:
| Type | Description |
|---|---|
OpenAICredentials | None
|
Stored credentials or None |