Skip to main content

wae_authentication/oauth2/providers/
mod.rs

1//! OAuth2 提供者预设配置
2
3mod github;
4mod google;
5mod wechat;
6
7pub use github::*;
8pub use google::*;
9pub use wechat::*;
10
11use crate::oauth2::OAuth2ProviderConfig;
12
13/// OAuth2 提供者类型
14#[derive(Debug, Clone, Copy, PartialEq, Eq)]
15pub enum OAuth2ProviderType {
16    /// Google
17    Google,
18    /// GitHub
19    GitHub,
20    /// 微信
21    WeChat,
22    /// 自定义
23    Custom,
24}
25
26/// 创建提供者配置
27pub 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}