Skip to main content

oauth_provider_rs/providers/github/
github_provider.rs

1use super::github_handler::*;
2use crate::{DefaultClientManager, InMemoryStorage, provider_trait::OAuthProviderConfig};
3
4/// Generic GitHub OAuth Provider that works with any storage
5pub type GitHubOAuthProviderGeneric<S> = GitHubOAuthHandler<S, DefaultClientManager<S>>;
6
7/// Type alias for GitHub OAuth Provider with InMemoryStorage (for backward compatibility)
8pub type GitHubOAuthProvider = GitHubOAuthProviderGeneric<InMemoryStorage>;
9
10impl GitHubOAuthProvider {
11    /// Create a new GitHub OAuth provider with InMemoryStorage
12    pub fn new_github(github_config: OAuthProviderConfig) -> Self {
13        let storage = InMemoryStorage::new();
14        let client_manager = DefaultClientManager::new(storage.clone());
15        GitHubOAuthHandler::new(storage, client_manager, github_config)
16    }
17}