bitwarden_core/auth/api/response/
identity_success_response.rs1use std::{collections::HashMap, num::NonZeroU32};
2
3use bitwarden_api_identity::models::KdfType;
4use serde::{Deserialize, Serialize};
5use serde_json::Value;
6
7#[derive(Serialize, Deserialize, Debug, PartialEq)]
8pub struct IdentityTokenSuccessResponse {
9 pub access_token: String,
10 pub expires_in: u64,
11 pub refresh_token: Option<String>,
12 token_type: String,
13
14 #[serde(rename = "privateKey", alias = "PrivateKey")]
15 pub(crate) private_key: Option<String>,
16 #[serde(alias = "Key")]
17 pub(crate) key: Option<String>,
18 #[serde(rename = "twoFactorToken")]
19 two_factor_token: Option<String>,
20 #[serde(alias = "Kdf")]
21 kdf: KdfType,
22 #[serde(
23 rename = "kdfIterations",
24 alias = "KdfIterations",
25 default = "bitwarden_crypto::default_pbkdf2_iterations"
26 )]
27 kdf_iterations: NonZeroU32,
28
29 #[serde(rename = "resetMasterPassword", alias = "ResetMasterPassword")]
30 pub reset_master_password: bool,
31 #[serde(rename = "forcePasswordReset", alias = "ForcePasswordReset")]
32 pub force_password_reset: bool,
33 #[serde(rename = "apiUseKeyConnector", alias = "ApiUseKeyConnector")]
34 api_use_key_connector: Option<bool>,
35 #[serde(rename = "keyConnectorUrl", alias = "KeyConnectorUrl")]
36 key_connector_url: Option<String>,
37
38 extra: Option<HashMap<String, Value>>,
40}
41
42#[cfg(test)]
43mod test {
44 use bitwarden_crypto::default_pbkdf2_iterations;
45
46 use super::*;
47
48 impl Default for IdentityTokenSuccessResponse {
49 fn default() -> Self {
50 Self {
51 access_token: Default::default(),
52 expires_in: Default::default(),
53 refresh_token: Default::default(),
54 token_type: Default::default(),
55 private_key: Default::default(),
56 key: Default::default(),
57 two_factor_token: Default::default(),
58 kdf: KdfType::default(),
59 kdf_iterations: default_pbkdf2_iterations(),
60 reset_master_password: Default::default(),
61 force_password_reset: Default::default(),
62 api_use_key_connector: Default::default(),
63 key_connector_url: Default::default(),
64 extra: Default::default(),
65 }
66 }
67 }
68}