wae_authentication/oauth2/providers/
mod.rs1mod github;
4mod google;
5mod wechat;
6
7pub use github::*;
8pub use google::*;
9pub use wechat::*;
10
11use crate::oauth2::OAuth2ProviderConfig;
12
13#[derive(Debug, Clone, Copy, PartialEq, Eq)]
15pub enum OAuth2ProviderType {
16 Google,
18 GitHub,
20 WeChat,
22 Custom,
24}
25
26pub fn create_provider_config(
28 provider_type: OAuth2ProviderType,
29 client_id: impl Into<String> + Clone,
30 client_secret: impl Into<String> + Clone,
31 redirect_uri: impl Into<String> + Clone,
32) -> OAuth2ProviderConfig {
33 match provider_type {
34 OAuth2ProviderType::Google => google_config(client_id, client_secret, redirect_uri),
35 OAuth2ProviderType::GitHub => github_config(client_id, client_secret, redirect_uri),
36 OAuth2ProviderType::WeChat => wechat_config(client_id, client_secret, redirect_uri),
37 OAuth2ProviderType::Custom => OAuth2ProviderConfig::new("custom", client_id, client_secret, redirect_uri),
38 }
39}