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