headless_lms_server/domain/oauth/
token_response.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, PartialEq, Eq, Clone)]
4pub struct TokenResponse {
5    pub access_token: String,
6    #[serde(skip_serializing_if = "Option::is_none")]
7    pub id_token: Option<String>,
8    #[serde(skip_serializing_if = "Option::is_none")]
9    pub refresh_token: Option<String>,
10    pub token_type: String,
11    pub expires_in: u32,
12}
13
14impl std::fmt::Debug for TokenResponse {
15    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
16        f.debug_struct("TokenResponse")
17            .field("access_token", &"<redacted>")
18            .field("id_token", &self.id_token.as_ref().map(|_| "<redacted>"))
19            .field(
20                "refresh_token",
21                &self.refresh_token.as_ref().map(|_| "<redacted>"),
22            )
23            .field("token_type", &self.token_type)
24            .field("expires_in", &self.expires_in)
25            .finish()
26    }
27}