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