44 lines
1018 B
Rust
44 lines
1018 B
Rust
use super::oauth::OAuthProvider;
|
|
|
|
pub const BETA_HEADER: &str = "oauth-2025-04-20";
|
|
|
|
pub struct ClaudeOAuthProvider;
|
|
|
|
impl OAuthProvider for ClaudeOAuthProvider {
|
|
fn provider_name(&self) -> &str {
|
|
"claude"
|
|
}
|
|
|
|
fn client_id(&self) -> &str {
|
|
"9d1c250a-e61b-44d9-88ed-5944d1962f5e"
|
|
}
|
|
|
|
fn authorize_url(&self) -> &str {
|
|
"https://claude.ai/oauth/authorize"
|
|
}
|
|
|
|
fn token_url(&self) -> &str {
|
|
"https://console.anthropic.com/v1/oauth/token"
|
|
}
|
|
|
|
fn redirect_uri(&self) -> &str {
|
|
"https://console.anthropic.com/oauth/code/callback"
|
|
}
|
|
|
|
fn scopes(&self) -> &str {
|
|
"org:create_api_key user:profile user:inference"
|
|
}
|
|
|
|
fn extra_authorize_params(&self) -> Vec<(&str, &str)> {
|
|
vec![("code", "true")]
|
|
}
|
|
|
|
fn extra_token_headers(&self) -> Vec<(&str, &str)> {
|
|
vec![("anthropic-beta", BETA_HEADER)]
|
|
}
|
|
|
|
fn extra_request_headers(&self) -> Vec<(&str, &str)> {
|
|
vec![("anthropic-beta", BETA_HEADER)]
|
|
}
|
|
}
|