1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//! OAuth/OIDC provider integration (requires `oauth` feature)
//!
//! Provides integration with OAuth providers like Google, GitHub, and
//! custom OIDC-compliant providers.
//!
//! # Example
//!
//! ```rust,ignore
//! use acton_service::auth::oauth::{GoogleProvider, OAuthProvider};
//! use acton_service::auth::config::OAuthProviderConfig;
//!
//! let config = OAuthProviderConfig {
//! client_id: "your-client-id".to_string(),
//! client_secret: "your-secret".to_string(),
//! redirect_uri: "https://example.com/callback".to_string(),
//! scopes: vec!["openid".to_string(), "email".to_string()],
//! };
//!
//! let provider = GoogleProvider::new(&config)?;
//!
//! // Generate authorization URL
//! let auth_url = provider.authorization_url("state-value", &[]);
//!
//! // After callback, exchange code for tokens
//! let tokens = provider.exchange_code("authorization-code").await?;
//!
//! // Get user info
//! let user_info = provider.get_user_info(&tokens.access_token).await?;
//! ```
// Core trait and types
pub use ;
// Provider implementations
pub use ;
// State management
pub use ;
pub use RedisOAuthStateManager;