Skip to main content

bitwarden_core/client/
login_method.rs

1#[cfg(feature = "secrets")]
2use std::path::PathBuf;
3
4use bitwarden_crypto::Kdf;
5use serde::{Deserialize, Serialize};
6
7#[cfg(feature = "secrets")]
8use crate::{OrganizationId, auth::AccessToken};
9
10#[derive(Debug)]
11pub enum LoginMethod {
12    #[allow(dead_code)]
13    User(UserLoginMethod),
14    // TODO: Organizations supports api key
15    // Organization(OrganizationLoginMethod),
16    #[cfg(feature = "secrets")]
17    ServiceAccount(ServiceAccountLoginMethod),
18}
19
20#[allow(dead_code)]
21#[derive(Debug, Clone, Serialize, Deserialize)]
22pub enum UserLoginMethod {
23    Username {
24        client_id: String,
25        email: String,
26        kdf: Kdf,
27    },
28    ApiKey {
29        client_id: String,
30        client_secret: String,
31
32        email: String,
33        kdf: Kdf,
34    },
35}
36
37#[cfg(feature = "secrets")]
38#[derive(Debug)]
39pub enum ServiceAccountLoginMethod {
40    AccessToken {
41        access_token: AccessToken,
42        organization_id: OrganizationId,
43        state_file: Option<PathBuf>,
44    },
45}