bitwarden_core/auth/api/request/
api_token_request.rs1use log::debug;
2use serde::{Deserialize, Serialize};
3
4use crate::{
5 auth::{api::response::IdentityTokenResponse, login::LoginError},
6 client::ApiConfigurations,
7};
8
9#[derive(Serialize, Deserialize, Debug)]
10pub struct ApiTokenRequest {
11 scope: String,
12 client_id: String,
13 client_secret: String,
14 #[serde(rename = "deviceType")]
15 device_type: u8,
16 #[serde(rename = "deviceIdentifier")]
17 device_identifier: String,
18 #[serde(rename = "deviceName")]
19 device_name: String,
20 grant_type: String,
21}
22
23impl ApiTokenRequest {
24 pub fn new(client_id: &String, client_secret: &String) -> Self {
25 let obj = Self {
26 scope: "api".to_string(),
27 client_id: client_id.to_string(),
28 client_secret: client_secret.to_string(),
29 device_type: 10,
30 device_identifier: "b86dd6ab-4265-4ddf-a7f1-eb28d5677f33".to_string(),
31 device_name: "firefox".to_string(),
32 grant_type: "client_credentials".to_string(),
33 };
34 debug!("initializing {:?}", obj);
35 obj
36 }
37
38 pub(crate) async fn send(
39 &self,
40 configurations: &ApiConfigurations,
41 ) -> Result<IdentityTokenResponse, LoginError> {
42 super::send_identity_connect_request(configurations, None, &self).await
43 }
44}