bitwarden_core/auth/api/request/
access_token_request.rs1use log::debug;
2use serde::{Deserialize, Serialize};
3use uuid::Uuid;
4
5use crate::{
6 auth::{api::response::IdentityTokenResponse, login::LoginError},
7 client::ApiConfigurations,
8};
9
10#[derive(Serialize, Deserialize, Debug)]
11pub struct AccessTokenRequest {
12 scope: String,
13 client_id: String,
14 client_secret: String,
15 grant_type: String,
16}
17
18impl AccessTokenRequest {
19 pub fn new(access_token_id: Uuid, client_secret: &String) -> Self {
20 let obj = Self {
21 scope: "api.secrets".to_string(),
22 client_id: access_token_id.to_string(),
23 client_secret: client_secret.to_string(),
24 grant_type: "client_credentials".to_string(),
25 };
26 debug!("initializing {:?}", obj);
27 obj
28 }
29
30 pub(crate) async fn send(
31 &self,
32 configurations: &ApiConfigurations,
33 ) -> Result<IdentityTokenResponse, LoginError> {
34 super::send_identity_connect_request(configurations, None, &self).await
35 }
36}