diff --git a/Cargo.lock b/Cargo.lock index b154daa..326dc66 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -533,28 +533,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" -[[package]] -name = "aws-lc-rs" -version = "1.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" -dependencies = [ - "aws-lc-sys", - "zeroize", -] - -[[package]] -name = "aws-lc-sys" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa7e52a4c5c547c741610a2c6f123f3881e409b714cd27e6798ef020c514f0a" -dependencies = [ - "cc", - "cmake", - "dunce", - "fs_extra", -] - [[package]] name = "axum" version = "0.8.9" @@ -1022,15 +1000,6 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" -[[package]] -name = "cmake" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" -dependencies = [ - "cc", -] - [[package]] name = "codee" version = "0.3.2" @@ -1290,16 +1259,6 @@ dependencies = [ "libc", ] -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1778,7 +1737,7 @@ dependencies = [ "js-sys", "mime", "pin-project", - "reqwest 0.12.28", + "reqwest", "rustversion", "send_wrapper", "serde", @@ -2469,12 +2428,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fs_extra" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" - [[package]] name = "funty" version = "2.0.0" @@ -3374,30 +3327,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "jsonwebtoken" -version = "10.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eba32bfb4ffdeaca3e34431072faf01745c9b26d25504aa7a6cf5684334fc4fc" -dependencies = [ - "base64 0.22.1", - "ed25519-dalek", - "getrandom 0.2.16", - "hmac", - "js-sys", - "p256", - "p384", - "pem", - "rand 0.8.6", - "rsa", - "serde", - "serde_json", - "sha2", - "signature", - "simple_asn1", - "zeroize", -] - [[package]] name = "keccak" version = "0.2.0" @@ -4012,10 +3941,10 @@ dependencies = [ "libc", "log", "openssl", - "openssl-probe 0.1.6", + "openssl-probe", "openssl-sys", "schannel", - "security-framework 2.11.1", + "security-framework", "security-framework-sys", "tempfile", ] @@ -4173,7 +4102,7 @@ dependencies = [ "getrandom 0.2.16", "http 1.4.1", "rand 0.8.6", - "reqwest 0.12.28", + "reqwest", "serde", "serde_json", "serde_path_to_error", @@ -4287,12 +4216,6 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" -[[package]] -name = "openssl-probe" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f50d9b3dabb09ecd771ad0aa242ca6894994c130308ca3d7684634df8037391" - [[package]] name = "openssl-sys" version = "0.9.116" @@ -4427,16 +4350,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" -[[package]] -name = "pem" -version = "3.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" -dependencies = [ - "base64 0.22.1", - "serde", -] - [[package]] name = "pem-rfc7468" version = "0.7.0" @@ -4699,12 +4612,6 @@ dependencies = [ "psl-types", ] -[[package]] -name = "querystring" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9318ead08c799aad12a55a3e78b82e0b6167271ffd1f627b758891282f739187" - [[package]] name = "quinn" version = "0.11.8" @@ -4731,7 +4638,6 @@ version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ - "aws-lc-rs", "bytes", "getrandom 0.3.3", "lru-slab", @@ -5063,47 +4969,6 @@ dependencies = [ "webpki-roots 1.0.1", ] -[[package]] -name = "reqwest" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-core", - "h2 0.4.10", - "http 1.4.1", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "js-sys", - "log", - "mime", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls", - "rustls-pki-types", - "rustls-platform-verifier", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-rustls", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "rfc6979" version = "0.4.0" @@ -5261,7 +5126,6 @@ version = "0.23.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" dependencies = [ - "aws-lc-rs", "once_cell", "ring", "rustls-pki-types", @@ -5270,18 +5134,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" -dependencies = [ - "openssl-probe 0.2.0", - "rustls-pki-types", - "schannel", - "security-framework 3.5.1", -] - [[package]] name = "rustls-pki-types" version = "1.12.0" @@ -5292,40 +5144,12 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-platform-verifier" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" -dependencies = [ - "core-foundation 0.10.1", - "core-foundation-sys", - "jni", - "log", - "once_cell", - "rustls", - "rustls-native-certs", - "rustls-platform-verifier-android", - "rustls-webpki", - "security-framework 3.5.1", - "security-framework-sys", - "webpki-root-certs", - "windows-sys 0.61.1", -] - -[[package]] -name = "rustls-platform-verifier-android" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" - [[package]] name = "rustls-webpki" version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ - "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -5580,20 +5404,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework" -version = "3.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" -dependencies = [ - "bitflags", - "core-foundation 0.10.1", + "core-foundation", "core-foundation-sys", "libc", "security-framework-sys", @@ -6204,7 +6015,7 @@ dependencies = [ "chrono", "oauth2", "regex", - "reqwest 0.12.28", + "reqwest", "secrecy", "serde", "serde_json", @@ -6312,18 +6123,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" -[[package]] -name = "simple_asn1" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror 2.0.18", - "time", -] - [[package]] name = "slab" version = "0.4.11" @@ -6774,7 +6573,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags", - "core-foundation 0.9.4", + "core-foundation", "system-configuration-sys", ] @@ -7463,12 +7262,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "urlencoding" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" - [[package]] name = "utf-8" version = "0.7.6" @@ -7831,15 +7624,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-root-certs" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36a29fc0408b113f68cf32637857ab740edfafdf460c326cd2afaa2d84cc05dc" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "webpki-roots" version = "0.26.11" @@ -8315,24 +8099,27 @@ dependencies = [ [[package]] name = "workos" -version = "0.8.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9549f22cbbe19631d9027537e8266b90bd4240a975bbf13fc625a6b552d7250" +checksum = "ab1a2632578e1ce106e4a433d9f7d19f75392fb0b65d876c556c2050261793b3" dependencies = [ - "aead", "aes-gcm", "async-trait", "base64 0.22.1", - "chrono", - "derive_more", - "jsonwebtoken", - "querystring", - "reqwest 0.13.4", + "bytes", + "futures-util", + "hex", + "hmac", + "http 1.4.1", + "rand 0.9.4", + "reqwest", "serde", "serde_json", + "sha2", + "subtle", "thiserror 2.0.18", + "tokio", "url", - "urlencoding", ] [[package]] @@ -8432,20 +8219,6 @@ name = "zeroize" version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] [[package]] name = "zerotrie" diff --git a/packages/methods/shield-workos/Cargo.toml b/packages/methods/shield-workos/Cargo.toml index 11985a5..b0d712a 100644 --- a/packages/methods/shield-workos/Cargo.toml +++ b/packages/methods/shield-workos/Cargo.toml @@ -14,4 +14,4 @@ bon.workspace = true serde.workspace = true serde_json.workspace = true shield.workspace = true -workos = "0.8.0" +workos = "2.0.0" diff --git a/packages/methods/shield-workos/src/actions/index.rs b/packages/methods/shield-workos/src/actions/index.rs index 3469457..beabf96 100644 --- a/packages/methods/shield-workos/src/actions/index.rs +++ b/packages/methods/shield-workos/src/actions/index.rs @@ -1,5 +1,3 @@ -use std::sync::Arc; - use async_trait::async_trait; use serde::Deserialize; use shield::{ @@ -8,15 +6,12 @@ use shield::{ SignInAction, SignUpAction, erased_method_action, }; use workos::{ - PaginationParams, - sso::{ConnectionId, ListConnections, ListConnectionsParams}, - user_management::{ - ConnectionSelector, GetAuthorizationUrl, GetAuthorizationUrlParams, ListUsers, - ListUsersParams, OauthProvider, Provider, - }, + Client, UserManagementAuthenticationProvider, + sso::ListConnectionsParams, + user_management::{GetAuthorizationUrlParams, ListUsersParams}, }; -use crate::{client::WorkosClient, options::WorkosOptions, provider::WorkosProvider}; +use crate::{options::WorkosOptions, provider::WorkosProvider}; const ACTION_ID: &str = "index"; const ACTION_NAME: &str = "Welcome"; @@ -24,18 +19,24 @@ const ACTION_NAME: &str = "Welcome"; #[derive(Debug, Deserialize)] #[serde(untagged, rename_all = "camelCase", rename_all_fields = "camelCase")] pub enum IndexData { - Email { email: String }, - Oauth { oauth_provider: OauthProvider }, - Sso { connection_id: ConnectionId }, + Email { + email: String, + }, + Oauth { + oauth_provider: UserManagementAuthenticationProvider, + }, + Sso { + connection_id: String, + }, } pub struct WorkosIndexAction { options: WorkosOptions, - client: Arc, + client: Client, } impl WorkosIndexAction { - pub fn new(options: WorkosOptions, client: Arc) -> Self { + pub fn new(options: WorkosOptions, client: Client) -> Self { Self { options, client } } } @@ -66,11 +67,8 @@ impl MethodAction for WorkosIndexAction { let connections = self .client .sso() - .list_connections(&ListConnectionsParams { - pagination: PaginationParams { - limit: Some(100), - ..Default::default() - }, + .list_connections(ListConnectionsParams { + limit: Some(100), ..Default::default() }) .await @@ -131,10 +129,22 @@ impl MethodAction for WorkosIndexAction { value: format!( "Continue with {}", match oauth_provider { - OauthProvider::AppleOAuth => "Apple", - OauthProvider::GithubOAuth => "GitHub", - OauthProvider::GoogleOAuth => "Google", - OauthProvider::MicrosoftOAuth => "Microsoft", + UserManagementAuthenticationProvider::Authkit => "Authkit".to_owned(), + UserManagementAuthenticationProvider::AppleOAuth => "Apple".to_owned(), + UserManagementAuthenticationProvider::BitbucketOAuth => "Bitbucket".to_owned(), + UserManagementAuthenticationProvider::GitHubOAuth => "GitHub".to_owned(), + UserManagementAuthenticationProvider::GitLabOAuth => "GitLab".to_owned(), + UserManagementAuthenticationProvider::GoogleOAuth => "Google".to_owned(), + UserManagementAuthenticationProvider::IntuitOAuth => "Intuit".to_owned(), + UserManagementAuthenticationProvider::LinkedInOAuth => "LinkedIn".to_owned(), + UserManagementAuthenticationProvider::MicrosoftOAuth => "Microsoft".to_owned(), + UserManagementAuthenticationProvider::SalesforceOAuth => "Salesforce".to_owned(), + UserManagementAuthenticationProvider::SlackOAuth => "Slack".to_owned(), + UserManagementAuthenticationProvider::VercelMarketplaceOAuth => "Vercel Marketplace".to_owned(), + UserManagementAuthenticationProvider::VercelOAuth => "Vercel".to_owned(), + UserManagementAuthenticationProvider::XeroOAuth => "Xero".to_owned(), + UserManagementAuthenticationProvider::Unknown(value) => value.replace("OAuth", ""), + _ => "Unknown".to_owned() } ) .to_owned(), @@ -192,12 +202,9 @@ impl MethodAction for WorkosIndexAction { let users = self .client .user_management() - .list_users(&ListUsersParams { - pagination: PaginationParams { - limit: Some(1), - ..Default::default() - }, - email: Some(&email), + .list_users(ListUsersParams { + limit: Some(1), + email: Some(email), ..Default::default() }) .await @@ -218,17 +225,10 @@ impl MethodAction for WorkosIndexAction { let authorization_url = self .client .user_management() - .get_authorization_url(&GetAuthorizationUrlParams { - client_id: &self.client.client_id(), - redirect_uri: &self.options.redirect_url, - connection_selector: ConnectionSelector::Provider(&Provider::Oauth( - oauth_provider, - )), + .get_authorization_url(GetAuthorizationUrlParams { + provider: Some(oauth_provider), // TODO: State and code challenge. - state: None, - code_challenge: None, - login_hint: None, - domain_hint: None, + ..GetAuthorizationUrlParams::new(&self.options.redirect_url) }) .expect("TODO: handle error"); @@ -240,15 +240,10 @@ impl MethodAction for WorkosIndexAction { let authorization_url = self .client .user_management() - .get_authorization_url(&GetAuthorizationUrlParams { - client_id: &self.client.client_id(), - redirect_uri: &self.options.redirect_url, - connection_selector: ConnectionSelector::Connection(&connection_id), + .get_authorization_url(GetAuthorizationUrlParams { + connection_id: Some(connection_id), // TODO: State and code challenge. - state: None, - code_challenge: None, - login_hint: None, - domain_hint: None, + ..GetAuthorizationUrlParams::new(&self.options.redirect_url) }) .expect("TODO: handle error"); diff --git a/packages/methods/shield-workos/src/actions/sign_in.rs b/packages/methods/shield-workos/src/actions/sign_in.rs index ca08818..3f69f99 100644 --- a/packages/methods/shield-workos/src/actions/sign_in.rs +++ b/packages/methods/shield-workos/src/actions/sign_in.rs @@ -1,22 +1,21 @@ -use std::sync::Arc; - use async_trait::async_trait; use shield::{ Form, Input, InputType, InputTypeEmail, InputTypeHidden, InputTypePassword, InputTypeSubmit, InputValue, MethodAction, MethodSession, Request, RequestMethod, Response, ResponseType, ShieldError, SignInAction, erased_method_action, }; +use workos::Client; -use crate::{client::WorkosClient, provider::WorkosProvider}; +use crate::provider::WorkosProvider; pub struct WorkosSignInAction { // TODO: Remove expect. #[expect(unused)] - client: Arc, + client: Client, } impl WorkosSignInAction { - pub fn new(client: Arc) -> Self { + pub fn new(client: Client) -> Self { Self { client } } } diff --git a/packages/methods/shield-workos/src/actions/sign_up.rs b/packages/methods/shield-workos/src/actions/sign_up.rs index 4611248..e988b7e 100644 --- a/packages/methods/shield-workos/src/actions/sign_up.rs +++ b/packages/methods/shield-workos/src/actions/sign_up.rs @@ -1,22 +1,21 @@ -use std::sync::Arc; - use async_trait::async_trait; use shield::{ Form, Input, InputType, InputTypeEmail, InputTypeHidden, InputTypePassword, InputTypeSubmit, InputValue, MethodAction, MethodSession, Request, RequestMethod, Response, ResponseType, ShieldError, SignUpAction, erased_method_action, }; +use workos::Client; -use crate::{client::WorkosClient, provider::WorkosProvider}; +use crate::provider::WorkosProvider; pub struct WorkosSignUpAction { // TODO: Remove expect. #[expect(unused)] - client: Arc, + client: Client, } impl WorkosSignUpAction { - pub fn new(client: Arc) -> Self { + pub fn new(client: Client) -> Self { Self { client } } } diff --git a/packages/methods/shield-workos/src/client.rs b/packages/methods/shield-workos/src/client.rs deleted file mode 100644 index 95f6c92..0000000 --- a/packages/methods/shield-workos/src/client.rs +++ /dev/null @@ -1,29 +0,0 @@ -use std::ops::Deref; - -use workos::{WorkOs, sso::ClientId}; - -pub struct WorkosClient { - client: WorkOs, - client_id: String, -} - -impl WorkosClient { - pub fn new(client: WorkOs, client_id: &str) -> Self { - Self { - client, - client_id: client_id.to_owned(), - } - } - - pub fn client_id(&self) -> ClientId { - ClientId::from(self.client_id.as_str()) - } -} - -impl Deref for WorkosClient { - type Target = WorkOs; - - fn deref(&self) -> &Self::Target { - &self.client - } -} diff --git a/packages/methods/shield-workos/src/lib.rs b/packages/methods/shield-workos/src/lib.rs index fb1fb6d..6ec1b4c 100644 --- a/packages/methods/shield-workos/src/lib.rs +++ b/packages/methods/shield-workos/src/lib.rs @@ -1,5 +1,4 @@ mod actions; -mod client; mod method; mod options; mod provider; @@ -8,9 +7,6 @@ pub use method::*; pub use options::*; #[doc(no_inline)] -pub use workos::{ - ApiKey as WorkosApiKey, WorkOs as Workos, WorkOsBuilder as WorkosBuilder, - user_management::OauthProvider as WorkosOauthProvider, -}; +pub use workos::{Client as Workos, UserManagementAuthenticationProvider as WorkosOauthProvider}; // TODO: Support both AuthKit method and self hosted method. diff --git a/packages/methods/shield-workos/src/method.rs b/packages/methods/shield-workos/src/method.rs index c3bcddf..d533adc 100644 --- a/packages/methods/shield-workos/src/method.rs +++ b/packages/methods/shield-workos/src/method.rs @@ -1,12 +1,9 @@ -use std::sync::Arc; - use async_trait::async_trait; use shield::{Method, MethodAction, ShieldError, erased_method}; -use workos::{ApiKey, WorkOs}; +use workos::Client; use crate::{ actions::{WorkosIndexAction, WorkosSignInAction, WorkosSignUpAction}, - client::WorkosClient, options::WorkosOptions, provider::WorkosProvider, }; @@ -17,19 +14,22 @@ pub const WORKOS_METHOD_ID: &str = "workos"; pub struct WorkosMethod { options: WorkosOptions, - client: Arc, + client: Client, } impl WorkosMethod { - pub fn new(client: WorkOs, client_id: &str, options: WorkosOptions) -> Self { - Self { - options, - client: Arc::new(WorkosClient::new(client, client_id)), - } + pub fn new(client: Client, options: WorkosOptions) -> Self { + Self { options, client } } pub fn from_api_key(api_key: &str, client_id: &str, options: WorkosOptions) -> Self { - Self::new(WorkOs::new(&ApiKey::from(api_key)), client_id, options) + Self::new( + Client::builder() + .api_key(api_key) + .client_id(client_id) + .build(), + options, + ) } pub fn with_options(mut self, options: WorkosOptions) -> Self { diff --git a/packages/methods/shield-workos/src/options.rs b/packages/methods/shield-workos/src/options.rs index 3ffaeb7..14cb77a 100644 --- a/packages/methods/shield-workos/src/options.rs +++ b/packages/methods/shield-workos/src/options.rs @@ -1,11 +1,11 @@ use bon::Builder; -use workos::user_management::OauthProvider; +use workos::UserManagementAuthenticationProvider; #[derive(Builder, Clone, Debug)] #[builder(on(String, into), state_mod(vis = "pub(crate)"))] pub struct WorkosOptions { #[builder(default)] - pub(crate) oauth_providers: Vec, + pub(crate) oauth_providers: Vec, // TODO: Generate automatically? pub(crate) redirect_url: String, }