Skip to main content

rustauth_plugins/generic_oauth/providers/
okta.rs

1//! Okta generic OAuth provider helper.
2
3use crate::generic_oauth::GenericOAuthConfig;
4
5pub const PROVIDER_ID: &str = "okta";
6
7#[derive(Debug, Clone, PartialEq, Eq)]
8pub struct OktaOptions {
9    pub base: super::BaseOAuthProviderOptions,
10    pub issuer: String,
11}
12
13pub fn okta(options: OktaOptions) -> GenericOAuthConfig {
14    let issuer = options.issuer.trim_end_matches('/');
15    let mut config = GenericOAuthConfig::discovery(
16        PROVIDER_ID,
17        "",
18        None::<String>,
19        format!("{issuer}/.well-known/openid-configuration"),
20    );
21    super::apply_base_options(
22        &mut config,
23        options.base,
24        vec![
25            "openid".to_owned(),
26            "profile".to_owned(),
27            "email".to_owned(),
28        ],
29    );
30    config
31}